Gast
#575550
Hallo!! Habe da eine Frage. ich möchte einen Timer mit einem Externen Interrupt Starten an pin 0.1 und mit einem anderen externen Interrupt an pin 0.3. wieder Stoppen und dann den Wert auslesen. also habe ich ja dann die zeit die das zweite signal später kommt als das erste. diese zeit möchte ich mir per Uart ausgeben lassen auf meinem PC. Hab den folgenden Programmcode geschrieben und hoffe das mir jemand weiterhelfen kann sind nur die wichtigsten teile drin. die LED bei den Interrupts habe ich nur verwedet um zu schauen ob die Intterupts auch ausgelöst sind und das klappt. ich Benutze einen C8051F020 von silabs. mit 16 MHz. Danke schonmal Hier mein Code bis jetzt. void main (void){ WDTCN = 0xde; // Watchdogtimer ausschalten WDTCN = 0xad; Init_Device(); EA=1; PCON |= 0x01; while(1){ } void PORT_Init (void) { XBR0 = 0x08; XBR1 = 0x1C; // no digital peripherals selected XBR2 = 0x40; // Enable crossbar and weak pull-ups } void oscillator_Init (void){ OSCICN = 0x07; } void Interrupts_Init() { IE = 0x85; } void Timer1_Init (void){ TMOD = 0x10; ET1 = 1; } _interrupt(0) void External0IntHandler (void){ unsigned char Wert1; CLR_TR1; TR1 = 1; // start Timer2 Wert1 = TL1; LED = 0; } _interrupt(2) void External1IntHandler (void){ unsigned char Wert2; Wert2 = TH1; LED = 1; } void Init_Device (void) { PCA_Init(); PORT_Init(); oscillator_Init(); Timer1_Init(); Interrupts_Init(); }