/********************************************************************** int0.c Exemplo de rotina de interrupção INT0 acionada por um sinal de subida no pino 56 da CPU (bit 2 da PORTA D) com a CPU em sleep no modo "power down" MC404 -2º em 2007 Prof Célio. G Atualizado em:27 Out 2007 ***********************************************************************/ #include #include // para interrupções unsigned char intct; ISR(INT0_vect) { intct++; } int main() { unsigned char ct=0; intct=0; MCUCR=0x33; // modo power down (sleep) + habilita pedido int na subida do sinal em INT0 GIMSK=0x40; // habilita interrupção INT0 DDRD=0; // configura PORTA D para entrada (supérfluo, default) sei(); while(1){ asm("sleep"); // dorme à espera de interrupção ct++; ct++; } }