#include #define TRG PIN_C2 #define SGL PIN_A2 int32 time; int32 speed; int32 distance; int32 temperature=25; #INT_EXT void EXT_isr(void){ if(input(SGL)){ set_timer1(0); ext_int_edge(H_TO_L); } else{ time=get_timer1(); } } #INT_TIMER0 void TIMER0_isr(void){ output_high(TRG); delay_us(6); output_low(TRG); ext_int_edge(L_TO_H); } void main(){ setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256|RTCC_8_BIT); //65.5 ms overflow setup_timer_1(T1_INTERNAL|T1_DIV_BY_1); //65.5 ms overflow enable_interrupts(INT_TIMER0); enable_interrupts(INT_EXT); enable_interrupts(GLOBAL); while(TRUE){ speed=33140+(60*temperature); //Speed in cm/second distance=speed*time/2000000; //Distance in cm } }