123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- #include "public.h"
- pvFunction pUserTaskCb=NULL;
- uint16 UserTaskCbTime=0;
- volatile uint32_t sys_timer_run_ms=0;
- volatile uint32_t sys_timer_run_sec=0;
- __near_func __interrupt void t3_irq(void);
- __near_func __interrupt void t4_irq(void);
- __near_func __interrupt void P1INT_Exti_ISR(void);
- #pragma optimize=none
- void system_delay_us(unsigned int n)
- {
- n>>=1;
- while(n--)
- {
- asm("NOP");
- asm("NOP");
- asm("NOP");
- asm("NOP");
- asm("NOP");
- asm("NOP");
- asm("NOP");
- asm("NOP");
- asm("NOP");
- asm("NOP");
- asm("NOP");
- asm("NOP");
- asm("NOP");
- asm("NOP");
- asm("NOP");
- }
- }
- void system_delay_ms(unsigned int n)
- {
- while(n--)
- {
- system_delay_us(1000);
- }
- }
- void SYSTEM_TICK_Init(pvFunction user_time_cb,uint16 time)
- {
- InitTimer4();
- if(user_time_cb!=NULL&&time>0)
- {
- pUserTaskCb = user_time_cb;
- UserTaskCbTime = time;
- }
- }
- void InitTimer3(void)
- {
- T3IE = 1;
-
- T3CTL |= 0xE0;
- T3CTL |= 0x08 ;
-
- T3CTL &= ~0x01;
- T3CC0 = 250;
- T3CCTL0 = 0x04;
- T3CTL |= 0x10;
-
- EA = 1;
-
- P1DIR=0xff;
-
- }
-
-
- #pragma vector=T3_VECTOR
- __near_func __interrupt void t3_irq(void)
- {
-
- IRCON &= ~0x04;
-
- }
- void InitTimer4(void)
- {
- T4IE = 1;
-
- T4CTL |= 0xE0;
- T4CTL |= 0x08 ;
-
- T4CTL &= ~0x01;
- T4CC0 = 250;
- T4CCTL0 = 0x04;
- T4CTL |= 0x10;
-
- EA = 1;
-
- }
-
-
- #pragma vector=T4_VECTOR
- __near_func __interrupt void t4_irq(void)
- {
-
- static uint16 user_cnt=0;
- IRCON &= ~0x08;
- if(++user_cnt>UserTaskCbTime)
- {
- user_cnt=0;
- if(pUserTaskCb!=NULL)
- {
- (*pUserTaskCb)();
- }
- }
- sys_timer_run_ms+=2;
- if(sys_timer_run_ms%1000==0)
- {
- sys_timer_run_sec++;
- }
-
- }
- uint32_t get_sys_timer_run_ms(void)
- {
- return sys_timer_run_ms;
- }
- uint32_t get_sys_timer_run_sec(void)
- {
- return sys_timer_run_sec;
- }
-
- void Init_P1Prot_Exti(void)
- {
- IEN2 |= 0x10;
- P1IEN |= 0x04;
- PICTL |= 0x02;
- EA = 1;
- }
- #pragma vector = P1INT_VECTOR
- __near_func __interrupt void P1INT_Exti_ISR(void)
- {
-
- P1IFG &= ~ 0x04;
- P1IF = 0;
- }
|