Hallo,
kann sein, dass ich total auf dem Schlauch stehe, aber ich komme nicht
weiter.
Zur Zeit bin ich dabei, mir das Programmieren in C beizubringen. Bis
jetzt habe ich in Basic gecodet. Ich habe nun dieses Programm
geschrieben:
/*
*/
#include <avr/io.h>
#include <util/delay.h>
#include <stdint.h>
#include <avr/interrupt.h>
TCCR0 = 0b00000101;
TIMSK = 0b00000001;
int main(void)
{
DDRD = 0b11111111;
DDRB = 0b00000001;
while(1)
{
if (TCNT0==100) TCNT0=0;
PORTD = TCNT0;
PORTB ^= (1<<PB0);
_delay_ms(TCNT0*2);
}
return 0;
}
Aber es mag nicht tun. Er macht einfach nichts, aus der PortB 0 zu
tooglen.
Kann mir jemand helfen und sagen, wo ich nochwas einstellen muss, damit
der Timer losrennt?
Gruß
Michael
Hi
>TIMSK = 0b00000001;
Weshalb aktivierst du einen Interrupt? Du brauchst ihn nicht und hast
auch keine Interruptroutine. Das funktioniert nicht.
MfG Spess
> TCCR0 = 0b00000101; > TIMSK = 0b00000001; Fehler: Anweisungen außerhalb einer Funktion. C ist anders als Basic Sehr unschön: Absolute Werte statt symbolischer Bitnamen Bitmanipulation > _delay_ms(TCNT0*2); Fehler: Kein zur Kompilierzeit konstanter Ausdruck als Argument
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.