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

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

Отправлено New 06 января 2003 г. 14:23

ИАР говорит о том, что не сушествуе данный клас или не правильно оределена переменния

#include "io8515.h"
#include "ina90.h"

int t = 0, d = 0;

char symbol[13] = {
0xc0, //HEX code of "0"
0xf9, //HEX code of "1"
0xa4, //HEX code of "2"
0xb0, //HEX code of "3"
0x99, //HEX code of "4"
0x92, //HEX code of "5"
0x82, //HEX code of "6"
0xf8, //HEX code of "7"
0x80, //HEX code of "8"
0x90, //HEX code of "9"
0x7f, //HEX code of Dot_mask
0xbf, //HEX code of "-"
0xff}; //HEX code of "nothing"

void timer(void)
{
TCNT0 = 0x1f;
TCCR0 = 0x1;
}

interrupt[TIMER1_OVF1_vect] void TIMER1_OVF1(void)
{
if (PIND != 0) t+=1;
if (t == 5)
{
switch (PIND)
{
case 0x1: d += 1; break;
case 0x2: d -= 1; break;
}
t = 0;
}
timer();
}

void delay()
{
unsigned int i;
for (i = 500; i>0; i--);
}

void display(int cod)
{
int i,k = 1000;
for (i=3; i>=0; i--)
{
PORTC = 1 << i;
if (cod >= 0)
PORTB = (i == 4) ? symbol[12] : symbol[cod/k % 10];
else
PORTB = (i == 4) ? symbol[11] : symbol[-cod/k % 10];
delay();
PORTC = 0xff;
delay();
k /= 10;

}

}


void main(void)
{
DDRB = 0xff;
PORTB = 0XFF;
__enable_interrupt();
TIMSK |= 0x02;
timer();

while (1)
{
display(d);
}
}

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

Ответы



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

E-mail: info@telesys.ru