на attiny2313 собрал тестовый проект. посадил кнопку на PCINT ( PB3 ), второй контакт на GND. включил программно подтяжку VCC ( pull-up ).
на PD4 посажен светодиод, через резистор на VCC
в результате - при нажатии кнопки получаю перезагрузку чипа. может кто сталкивался?
вот код ( компилятор avr-gcc из WinAvr ):
Код: Выделить всё
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
// Обработчик прерывания по PCINT ( пока пустой )
ISR( PCINT_vect )
{
}
int main()
{
// Настройка PCINT
PCMSK |= _BV( PCINT3 );
GIMSK |= _BV( PCIE );
PORTB |= _BV( PB3 );
// Моргнуть светодиодом для обозначения старта
DDRD |= _BV( PD4 );
_delay_ms( 200 );
DDRD &= ~_BV( PD4 );
_delay_ms( 200 );
DDRD |= _BV( PD4 );
// Разрешить прерывания
sei();
// Вечный цикл ( позже здесь будет sleep в цикле )
for( ; ; ) {}
return 0;
}о факте перезагрузки в общем сужу косвенно - после нажатия кнопки светодиод моргает как при старте!