15.07.2004, 11:19
Hallo,
ich bin Anfänger und habe einen AT90S2313, der soweit funktioniert(LED,Taster). Jetzt wollte ich den Timer/Counter benutzen, jedoch funzt das nicht. In den TCNT0 Register müsste doch eigentlich bis 255 hochgezählt werden oder?
Da habe ich mir gedacht ich frage die Zahl ab und speichere in Var i.
Lass ihn bis 100 zählen und dann soll er die Diode ausmachen. Nur bleibt die Diode ewig an. Was mach ich falsch?
Mein Code:
#include <io.h>
typedef unsigned char BYTE;
BYTE i;
int main(void)
{
outp (0x1f,DDRB); // Port B als Ausgang
outp ((1<<CS00), TCCR0);//counter auf cpu-takt einstellen
for(;;)
{
i = inp(TCNT0);
if (i>100)
sbi(PORTB,2);
if(i<100)
cbi (PORTB, 2);
}
}
( Codetag eingefügt, Kjion )
ich bin Anfänger und habe einen AT90S2313, der soweit funktioniert(LED,Taster). Jetzt wollte ich den Timer/Counter benutzen, jedoch funzt das nicht. In den TCNT0 Register müsste doch eigentlich bis 255 hochgezählt werden oder?
Da habe ich mir gedacht ich frage die Zahl ab und speichere in Var i.
Lass ihn bis 100 zählen und dann soll er die Diode ausmachen. Nur bleibt die Diode ewig an. Was mach ich falsch?
Mein Code:
#include <io.h>
typedef unsigned char BYTE;
BYTE i;
int main(void)
{
outp (0x1f,DDRB); // Port B als Ausgang
outp ((1<<CS00), TCCR0);//counter auf cpu-takt einstellen
for(;;)
{
i = inp(TCNT0);
if (i>100)
sbi(PORTB,2);
if(i<100)
cbi (PORTB, 2);
}
}
( Codetag eingefügt, Kjion )