-
-
Hallo!
Die Zahl wird gar nicht hoch gezählt, der µC gibt am Terminal nur den Anfangswert aus, also 0!
Hier ist mein Programm code:
#include <mega162.h>
#include <stdio.h>
int zahl=0;
interrupt [EXT_INT0] void ext_int0_isr(void)
{
}
interrupt [PCINT0] void pin_change_isr0(void)
{
zahl++;
}
//Initialisierung der USART Schnittstelle fürs Terminal
void warte(unsigned int msec) //Damit die zahl ca. im sekunden takt ausgegeben wird
{ unsigned int i;
for (msec; msec!=0; msec--) for (i=0; i<8; i++);
}
void main(void)
{
//Initialisierung der PORTS und Timer, ...; dabei brauch ich aber nur den PORTA.1, weil der für den Interrupt 0 zuständig ist
//Interrupt initialisierung
GICR|=0x48;
PCMSK0=0x03;
GIFR=0x48;
#asm("sei"); // Global enable interrupts
while (1)
{
// Place your code here
printf("\n\r%d",zahl);
warte(1000);
};
}
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen