單片機源程序如下:
- void main(void)
- {
- u16 count;
- DisableInterrupts; //禁止總中斷
- FTM_PWM_init(FTM1, CH0, 100, 50); //FTM模塊產生PWM,用 FTM1_CH0 ,即 PTA8 ,頻率為 100
- lptmr_counter_init(LPT0_ALT2, INT_COUNT, 2, LPT_Rising); //初始化脈沖計數器,用LPT0_ALT2,即PTC5輸入,每隔INT_COUNT產生中斷,延時2個時鐘濾波,上升沿觸發
- EnableInterrupts; //開總中斷
- while(1)
- {
- if( LPT_INT_count > 0 )
- {
- count = LPTMR0_CNR; //保存脈沖計數器計算值
- lptmr_counter_clean(); //清空脈沖計數器計算值(馬上清空,這樣才能保證計數值準確)
- printf("LPT產生一次中斷啦:%d\n", LPT_INT_count * INT_COUNT + count); //打印計數值
- LPT_INT_count = 0; //清空LPT中斷次數
- }
- }
- }
- void LPT_Handler(void)
- {
- LPTMR0_CSR |= LPTMR_CSR_TCF_MASK; //清除LPTMR比較標志
- LPT_INT_count++; //中斷溢出加1
- }
- void PIT0_IRQHandler()
- {
- pit_flag = 1; //標記進入PIT中斷
- PIT_Flag_Clear(PIT0); //清中斷標志位
- }
- #undef VECTOR_101
- #define VECTOR_101 LPT_Handler
- #undef VECTOR_084
- #define VECTOR_084 PIT0_IRQHandler //重新定義84號中斷為PIT0_IRQHandler中斷
- extern void LPT_Handler(void);
- extern void PIT0_IRQHandler(void); //PIT0 定時中斷服務函數
復制代碼
所有資料51hei提供下載:
K60 smartcar最終代碼.rar
(1.72 MB, 下載次數: 10)
2018-5-23 03:21 上傳
點擊文件名下載附件
智能小車 下載積分: 黑幣 -5
|