سلام خسته نباشید
این برنامه ی تایمر-مد کپچر هست
برنامه اینه اول این که وقتی یک لبه ی بالا رونده به پایه ی cap0.1 قرار داده بشه میره به وقفه و مقادیر tc و cr1 رو باید بخونه و روی ال سی دی نمایش بده.
واین کار هم میکنه ولی مشکل اینجاست که ( مد کپچر اینه که وقتی یک لبه ی مشخص شده به یکی از پایه های cap(در اینجا p1.27) مقدار شمرده شده در tc رو در کانال کپچر مشخص شده(در اینجاcr1)
ذخیره کنه (یعنی این دو مقدار باید باهم برابر باشند(بعد از خونده شدن مقدار tc=0 قرار داده میشه در برنامه که از اول شمارش کنه))..........اینجا این دو مقدار فقط لحظه ای که برای اولین بار خونده میشن باهم برابرند.........در بقیه ی حالات نه!!!!
و دوم اینکه چرا یک سری علائم پشت عدد خونده شده هست مثلا روی ال سی دی این جور نمایش میده:~5666یا %8895 یا } 79555 و ......( منظورم این علائم~%{و....) هست؟؟؟؟
int i=0;
int h=0;
char buff[20];
void TIMER0_IRQHandler (void)
{
h=LPC_TIM0->TC;
i=LPC_TIM0->CR1;
lcd_clear();
lcd_gotoxy(1,1);
;(lcd_puts(i
;(lcd_gotoxy(2,1
;(lcd_puts(h
معادل 2 ثانیه;(delay_s(20
;LPC_TIM0->TC=0x0
LPC_TIM0->IR = (1UL<<0);
}
//------------------------------------------------
int main(){
//LPC_GPIO2->FIODIR = 0x01;
LPC_TIM0->CTCR = 0x04; //cap0.1-timer
LPC_TIM0->CCR = 0x00000028;
LPC_TIM0->PR = 25;
LPC_TIM0->TCR = 2; //reset
lcd_init();
lcd_clear();
lcd_gotoxy(1,1);
lcd_putsf(" 6759 ");
delay_s(10);
// -------------- interupt seting ----------------
NVIC_SetPriority(TIMER0_IRQn,0);
NVIC_EnableIRQ(TIMER0_IRQn);
LPC_PINCON->PINSEL3 = 0x00C00000;
LPC_TIM0->TCR = 1;
while(1){
}
}