[an error occurred while processing this directive]
Ответ: не много не понимаю что ты делаешь
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Afonja 01 августа 2002 г. 12:52
В ответ на: Подскажите в чем проблема (в IAR или во мне) отправлено RSA_M 01 августа 2002 г. 08:13

немного вопросов и поправок
unsigned char flag = 10;
long k = 0;
long j = 0;

interrupt [INT0_vect] void INT0_interrupt(void)
{
flag = 20;
PORTB |= 4; // нет смысла, все равно в он по флагу в майн выставиться, или так важен момент прихода //прерывания ? но все равно f1() токо в теле пройдет
GIMSK = 0x00;
}

interrupt [INT1_vect] void INT1_interrupt(void)
{
flag = 20;
PORTB |= 4; // нет смысла
GIMSK = 0x00;
}

void f1(void);

void main(void)
{
DDRD = 0x63;
DDRB = 0xDF;
PORTD = 0xFF;
PORTB = 0x20;

GIMSK = 0xC0;
_SEI();

while(1)
{

if (flag == 20) f1();

//for (j=0; j<3000; j++){
//PORTB |= 2; ?????
//}

PORTB|=2;
for (j=0; j<3000; j++);

// for (j=0; j<3000; j++){
// PORTB &= 0xFD; // опять не понятно
// }
PORTB&=0xFD;
for (j=0; j<3000; j++);


}
}

void f1(void)
{
PORTB |= 0x04;
}
и далее, выходы у атмег сильноточные но по нулю. Надо катод на ногу садить, а питание на анод подать, и управлять нулем(тогда загориться), 1 не горит.
И проверь еще раз приход прерывания, (хотя бы вместо пррывания поставь просто в вайле опрос ноги и там флаг меняй)

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru