Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > Dear Tobias, > > Thank for your replay.I like it. > Below the code. > Please check the comment for futhereplanations. > > Regards Bram > > > /******************************************************************************* > name: - Inertia Dyno Power. Timer Moduul basis Timer0. > input: - Wheel sensor > output: - Timer Counts Seriel (prefer dec or hex) to the PC for Delphi interface > description: - Timer0 Interrupt, if timer has expired > > Mega32: Output PD7 (PortD.7) for Test > *******************************************************************************/ > > #ifdef MEGA32 > #define PORT_PWM 31 > #endif > > #define EXTINT 2 > #define INTMODE 2 > > #define LF 0x0A > #define CR 0x0D > #define SPACE 0x20 > > word cnt1; > byte busy; > char str; > /*------------------------------------------------------------------------------ > name: - Inertia Dyno Power. Timer Moduul > input: - Sensor > output: - Timer Counts Seriel (dec or hex) to PC for Grafics (Delphi) > description: - Timer0 Interrupt, if timer has expired > ------------------------------------------------------------------------------*/ > > void Ext_ISR(void) > { > int irqcnt; > > Timer_T0Stop(); // Timer 0 Stop > // cnt1 = value timer pulses in word ? > // ? Str_Printf(str, "arg1: %d\r", 1234); > // ? Str_Printf '=(%[width]x -> Hex-number) > // and send it then with > // ? Serial_WriteText(0,str); > // ? Serial_Write(0,cnt1); > Serial_Write(0,CR); // Send CR to PC forr Deplhi grafics interface > cnt1=0; // Set counter value 0 > Ext_IntDisable(EXTINT); // Disable Ext Interupt > Timer_T0FRQ(4,PS0_1024); // Start Timer again > Ext_IntEnable(EXTINT,INTMODE); // Ext Interupt enable > irqcnt=Irq_GetCount(INT_2); // activeer interupt INT_2 from wheel speed > } > > void Timer0_ISR(void) > { > int irqcnt; > busy=0; > irqcnt=Irq_GetCount(INT_TIM0COMP); // Interrupt Request Counter > } > > void main(void) > { > Serial_Init(0,SR_8BIT|SR_1STOP|SR_NO_PAR,SR_BD9600); > Port_DataDirBit(PORT_PWM,PORT_OUT); // Set port direction to output > Irq_SetVect(INT_TIM0COMP,Timer0_ISR); // Define Interrupt > Irq_SetVect(INT_2,Ext_ISR); // From (wheel) sensor to pin nr.10 > > while (1) > { > Timer_T0Time(4,PS0_1024); // Ca. 1 ms need more adjusting > Port_WriteBit(PORT_PWM,0); // Set port to control output to 0 > busy=1; > while (busy); > Timer_T0Time(4,PS0_1024); // > Port_WriteBit(PORT_PWM,1); // Set port to control output to 1 > busy=1; > while (busy); > cnt1++; // Added Timer Pulses > Ext_IntEnable(EXTINT,INTMODE); // Enable Ext. Interupt > } > } > > // EOF > > > > > > > > > > > > > > > > > > > > > > > > > > > > Please note, that the Serial_Write-function only can send a byte, not a word!