Frage zu verwendung von Timern
Hallo,
ich bekomme es einfach nicht hin mit den Timern und nun suche ich bei euch Hilfe
Ich habe versucht mit Hilfe des AVR-GCC Tut von Mikrocontroller.net einen Timer zum laufen zu bekommen, nur leider mache ich scheinbar irgendetwas falsch.
Mit C kenne ich mich leider nicht so richtig aus, den ich programmiere meine kleinen PC-Progrämmchen mit Delphi (also Pascal). Meine ATMega möchte ich in C programmieren, da es da mir das sehr verbreitet scheint.
Mein Testobjekt ist ein ATMega16 und mein Versuch sieht wie folgt aus:
Timer Aktivieren:
Code:
void init_timer()
{
TCCR0 = (1<<CS00) | (0<<CS01) | (1<<CS02);
}
Versuch einen Ausgang zum blinken zu bewegen:
Code:
#include <avr/io.h>
#include "inttypes.h"
int main()
{
int32_t Zaehler = 0;
init_digital(); //Ports als Ausgänge schalten
init_timer(); //Timer Aktivieren
while(1)
{
if (TCNT0 == 100)
{
Zaehler++;
PORTB = (0<<PB2);
}
if (Zaehler == 1020)
{
Zaehler = 0;
PORTB = (0<<PB2);
}
if (Zaehler == 250)
{
PORTB = (0<<PB0);
}
if (Zaehler == 1000)
{
PORTB = (1<<PB0);
}
} //while
} //main
Bin wie gesagt noch etwas auf Kriegsfuß mit C, daher bitte nicht über den Code wundern. Der ist mit sicherheit alles andere als Professionell und scheinbar ja auch falsch ;)
Könnt Ihr mir evt. sagen was ich da für einen Denkfehler mache?
Danke schon einmal vorab