Hallo,
nach dem ich nach langem mal wieder Zeit habe mich mit Mikrocontrollern zu beschäftigen, habe ich mich mal wieder um die Timer gekümmert.
Ich hab versucht den Vorschlag von "oberallgaier" zu realisieren. Vom Prinzip her habe ich es verstanden ich bekomm aber immer folgende Fehler meldung:
Code:
../Timerfunktion.c:26: error: 'Izeit_1' undeclared (first use in this function)
../Timerfunktion.c:26: error: (Each undeclared identifier is reported only once
../Timerfunktion.c:26: error: for each function it appears in.)
../Timerfunktion.c: In function 'main':
../Timerfunktion.c:52: error: 'Izeit' undeclared (first use in this function)
make: *** [Timerfunktion.o] Error 1
Build failed with 4 errors and 0 warnings...
In meiner main-Routine declariere ich die variable Izeit_1. Warum kennt er dann die Variable nicht in der ISR. Ich rufe die ISR doch erst später, nach der Deklaraqtion auf......
Code:
#include <stdlib.h>
#include <avr/pgmspace.h>
#include <stdio.h>
#include <util/delay.h>
#include <avr/io.h>
#include <avr/interrupt.h>
/* ============================================================================== */
void Timer0_init(void)
{
TCCR0 |= (1<<WGM01) | (1<<CS01);
OCR0 = 125;
TIMSK |= (1<<OCIE0);
}
/* ============================================================================== */
/* ============================================================================== */
/* === Nicht unterbrechbare ISR für timer2 ===================================== */
ISR(TIMER0_COMP_vect) // Vektor 7
{
if (Izeit_1 <= 60000) //Timer bis 60 000 - 3 sec Datenerfassung möglich
Izeit_1 ++; // war: alle drei Sekunden wird 60000 erreicht
// und Izeit_1 bleibt in der uint16-Grenze
else
{
Izeit_1 = 0; // ansonsten: Rückstellen auf Null
PORTC ^= (1<<PC5); // Zur Anzeige gLED am PC5/SCL toggeln
}
}
/* ============================================================================== */
int main(void)
{
uint16 Izeit_1=0;
Timer0_init();
DDRC |= 0xff;
PORTC=0x00;
while(1)
{
cli();
Izeit_1=0;
sei();
if (Izeit>5000)
{
PORTC ^= (1<<PC1);
}
cli();
}
}
Wäre super wenn mir jemand helfen könnte. 
Bis dann lG Anna
Lesezeichen