Also wenn ich das Richtig verstanden habe macht sei(); nichts anderes
als den globalen Interrupt zu aktivieren. Ich poste mal mein kleinen
Text vielleicht fällt da ja jemanden was auf.
#include <stdlib.h>
#include <lcd.h>
#include <lcd.c>
#include <avr/interrupt.h>
int stat = 0;
unsigned long int temp = 50;
unsigned long int time = 10; //
char buffer[20]; //buffer
ISR(TIMER1_CAPT_vect)
{
temp = 100;
temp = ICR1;
}
void lcd(void)
{
itoa( time , buffer, 10); //wandle integer in string
lcd_gotoxy(0,1); // gehe zu LCD Position X Y
lcd_puts(buffer); //schreibe auf den LCD den Inhalt von Var buffer
}
int main(void)
{
TIMSK |= (1<<TICIE1) | (1<<TOIE1); // Input Capture Interrupt
aktiviert; Timer 1 Overflow Interrupt aktiviert
TCCR1B |= (1<<CS10) | (0<<CS11) | (0<<CS12); // Timer CPU-Takt /
sei();
lcd_init(LCD_DISP_ON);
lcd_clrscr();
lcd_init(LCD_DISP_ON);
lcd_puts("Impulsdauer:\n");
for(;;)
{
time = temp;
lcd();
}
}
Soll das jetzt heißen der hängt in der input capture interrupt fest?
Aber der wird doch nicht dauern ausgelöst hab das teil ja schonmal an
Masse angeschlossen damit da ja kein Signal anliegt.
Vielleicht sieht ja jemand was was ich falsch mache sitze schon wieder
so lange dadran das es wieder so einfach ist das ich es nicht sehe.
MFG
Daniel