Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить

pic12f675

Вт авг 14, 2018 11:51:27

в симуляции в протеусе рисует бесконечное число импульсов, а прога написана как на один импульс(собственно и должен быть один). в чем может быть проблема?
Код:
#include <stdio.h>
#include <stdlib.h>

// PIC12F675 Configuration Bit Settings
// 'C' source line config statements

#include <xc.h>

/*define clock freq*/

#ifndef _XTAL_FREQ
#define _XTAL_FREQ 4000000  // 4MHZ crystal
#endif


// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.

// CONFIG
#pragma config FOSC = INTRCIO   // Oscillator Selection bits (INTOSC oscillator: I/O function on GP4/OSC2/CLKOUT pin, I/O function on GP5/OSC1/CLKIN)
#pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF      // Power-Up Timer Enable bit (PWRT disabled)
#pragma config MCLRE = ON      // MCLR
#pragma config BOREN = OFF      // Brown-out Detect Enable bit (BOD disabled)
#pragma config CP = OFF         // Code Protection bit (Program Memory code protection is disabled)
#pragma config CPD = OFF        // Data Code Protection bit (Data memory code protection is disabled)

void mydelay_ms(unsigned int cycles) {
    unsigned int i;

    for (i = 1; i <= cycles; i++) {
        __delay_ms(1);
    }
}

void main()
{
    GPIO0 = 0x00;                        // make all GPIO port output
    TRISIO = 0x00;                     // TRISIO direction as output
    ADCON0 = 0x00;                // Internal ADC OFF
    ANSEL = 0x00;                  // All Analog selections pins are assigned as digital I/O
    CMCON  = 0x07;          // Shut off the Comparator
    VRCON  = 0x00;         // Shut off the Voltage Reference
        GPIO0 = 1;                      // Make GPIO0 port high
        mydelay_ms(500);
        GPIO0 = 0;                     // Make GPIO0 port low
        mydelay_ms(130);
    }

Re: pic12f675

Вт авг 14, 2018 13:15:23

студент? диплом? курсовик?

за 5000 рублей, помогу.

Re: pic12f675

Вт авг 14, 2018 13:16:04

студент? диплом? курсовик?

за 5000 рублей, помогу.

ага, сейчас. курсовые уже свои отписала, это работа

Re: pic12f675

Вт авг 14, 2018 13:26:14

А что по Вашему делает программа после того, как сделает этот самый 1 импульс ?

Re: pic12f675

Вт авг 14, 2018 13:29:56

А что по Вашему делает программа после того, как сделает этот самый 1 импульс ?

должна сформировать и все, типа конец программы. одиночный импульс и его надо на осциллографе увидеть

Re: pic12f675

Вт авг 14, 2018 13:36:39

должна сформировать и все, типа конец программы. одиночный импульс и его надо на осциллографе увидеть

Увы нет, она будет выполнятся циклически. А вот как этого избежать, уже поищите сами.

Re: pic12f675

Вт авг 14, 2018 13:38:15

должна сформировать и все, типа конец программы. одиночный импульс и его надо на осциллографе увидеть

Увы нет, она будет выполнятся циклически. А вот как этого избежать, уже поищите сами.

так искала, не нашла, поэтому и написала сюда

Re: pic12f675

Вт авг 14, 2018 13:53:46

Хорошо, как бы Вы написали програму, если бы ХОТЕЛИ, чтобы она выполнялась циклически ?

Re: pic12f675

Вт авг 14, 2018 13:58:01

Хорошо, как бы Вы написали програму, если бы ХОТЕЛИ, чтобы она выполнялась циклически ?

с while
Код:
while(1)
    {
        GPIO0=1;                      // Make GPIO0 port high
        __delay_ms(500);
        GPIO0=0;                     // Make GPIO0 port low
        __delay_ms(130);
    }

Re: pic12f675

Вт авг 14, 2018 13:59:45

Добавте после

Код:
mydelay_ms(130);


строчку

Код:
while(1)   { }
Последний раз редактировалось RoboC Вт авг 14, 2018 14:00:48, всего редактировалось 1 раз.

Re: pic12f675

Вт авг 14, 2018 14:01:44

После этого

mydelay_ms(130);

поставьте затычку.

Добавлено after 59 seconds:
Ага, такую.

Re: pic12f675

Вт авг 14, 2018 14:07:29

Добавте после

Код:
mydelay_ms(130);


строчку

Код:
while(1)   { }

спасибо большое) а то только после университета, еще совсем зеленая)

Re: pic12f675

Ср авг 15, 2018 11:46:19

вай мээээээ...... молодаааааяяяяяяя........ тари - рам..... молодааааяяяяяя....

не иди делать технику, не надо. техника не виновата.

иди лучше в адместруацию презерватива.
там все такие: тупые врушки.

Re: pic12f675

Пт авг 17, 2018 08:18:15

только после университета

МК не имеет режима остановки выполнения кода, иначе чем режим sleep. То есть ВСЕГДА в программе должен быть бесконечный цикл. Иначе счетчик команд продолжит исполнение по непрошитой кодом программной флеши (непрошитый флеш - это обычная команда с кодом 0x3FFF) до конца этой флеши и затем обнулится, вернувшись на начало кода.

Re: pic12f675

Пт авг 17, 2018 12:01:00

в конце мейна напиши бесконечный цикл при помощи оператора for, например или используй конструкцию с goto

Re: pic12f675

Пт авг 17, 2018 12:49:20

да пусть лучше еду готовить учится.
походу в институте одни пельмени жрала?

ОДНАКО..., САМ СЕБЯ ПОДЪЕ....
на пельмени и пиво программисты клюют.

ЗЫ. девочка - замуж. срочно замуж.
родишь дитя. разведешься. будешь драть алиментя с бывшего. и ВОТ:
наконец поумнеешь и выйдешь замуж нормально.
и будешь ему готовить БОРЩ. и сыну тоже ;)

Re: pic12f675

Пт авг 17, 2018 13:09:31

только после университета

МК не имеет режима остановки выполнения кода, иначе чем режим sleep. То есть ВСЕГДА в программе должен быть бесконечный цикл. Иначе счетчик команд продолжит исполнение по непрошитой кодом программной флеши (непрошитый флеш - это обычная команда с кодом 0x3FFF) до конца этой флеши и затем обнулится, вернувшись на начало кода.


Можно "заглушку" для такого дела (или иначе - аварийный останов) сотворить:
Код:
stop:
  goto stop

а как под Си...?
:dont_know:

Re: pic12f675

Пт авг 17, 2018 13:21:00

BOB51 писал(а):а как под Си...?
Код:
while(1) continue;

Re: pic12f675

Пн авг 20, 2018 06:18:03

Код:
while(1) continue;

еще проще:
Код:
while(1) ;

Re: pic12f675

Пн авг 20, 2018 09:43:43

Эквивалентно.
Ответить