[an error occurred while processing this directive]
|
Есть одна небольшая проблема с выводом CKOUT (PD2). Хотелось бы
сделать его INT0. Частота синхронизации от внутреннего 8МГц генератора (CKSEL3...0 = 0100), предделитель на 8 не использую (CKDIV8 = 1).
Код программы:
.......
unsigned int j,k,t;
unsigned char povtor,live;
.........
#pragma interrupt_handler int0_isr:02 PORTD &= ~0x20; // OFF LED //call this routine to initialize all peripherals Если не трудно помогите пожалуйста. А то
void int0_isr(void)
{
//int0 external interrupt от устройства зарядки батареи
// провряем наличие внешнего питания
// if((PIND & 0x20) == 0)
// PORTD |= 0x20; // ON LED
k=5000; // Делаем маленькую задержку
for(povtor=0;povtor<8;povtor++)
{
for(j=0;j
for(j=0;j
}
CLI(); //disable all interrupts
GIMSK = 0x80; // запретили прерывание INT0
SEI(); //re-enable interrupts
}
......
//*********************************************************************************
void port_init(void)
{
DDRA = 0x00;
PORTA = 0x07;
DDRB = 0x10;
PORTB = 0x00;
DDRD = 0x33;
PORTD = 0x0B; //0x0B
}
void init_devices(void)
{
//stop errant interrupts until set up
CLI(); //disable all interrupts
port_init();
comparator_init();
watchdog_off();
timer0_init();
timer1_init();
MCUCR =0x03; // 0x00 // было 0x08; // Настройка SLEEP mode и прерывания
GIMSK = 0x80; // Разрешили прерывание INT1
TIMSK = 0x00;
SEI(); //re-enable interrupts
//all peripherals are now initialized
}
все время генерируется частота 60 кГц?
Ответы
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание