Timer0 in C mag nicht zählen

Gast #2454384
Lesenswert?

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
Gast #2454407
Lesenswert?

> 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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren