找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5044|回復: 0
收起左側(cè)

ATmega128 定時器測試

[復制鏈接]
ID:80436 發(fā)表于 2015-5-21 23:45 | 顯示全部樓層 |閱讀模式
  1. 功能說明/*全部定時1S*/

  2. #define F_CPU 16000000UL

  3. #include "DS12864.h"

  4. #include <avr/io.h>

  5. #include <avr/interrupt.h>

  6. volatile unsigned int count0=0,flag0=0;

  7. volatile unsigned int count1=0,flag1=0;

  8. volatile unsigned int count2=0,flag2=0;

  9. volatile unsigned int count3=0,flag3=0;

  10. /**************************************************************

  11. 隸屬模塊:定時器測試模塊

  12. 函數(shù)名稱:Timer0_Init()

  13. 函數(shù)功能: 初始化

  14. 入口參數(shù): 無

  15. 返回參數(shù):無

  16. ***************************************************************/

  17. void Timer0_Init()

  18. {

  19. TCNT0 = 0x06;

  20. TCCR0 = 0x03;//64分頻

  21. TIMSK |= (1<<TOIE0);//使能定時器0中斷

  22. }

  23. /**************************************************************

  24. 隸屬模塊:定時器測試模塊

  25. 函數(shù)名稱:Timer1_Init()

  26. 函數(shù)功能: 初始化

  27. 入口參數(shù): 無

  28. 返回參數(shù):無

  29. ***************************************************************/

  30. void Timer1_Init()

  31. {

  32. TCNT1H = 0x3C;

  33. TCNT1L = 0xB0;

  34. TCCR1A = 0x00;

  35. TCCR1B = 0x03;//64分頻

  36. TIMSK |= (1<<TOIE1);//使能定時器1中斷

  37. }

  38. /**************************************************************

  39. 隸屬模塊:定時器測試模塊

  40. 函數(shù)名稱:Timer2_Init()

  41. 函數(shù)功能: 初始化

  42. 入口參數(shù): 無

  43. 返回參數(shù):無

  44. ***************************************************************/

  45. void Timer2_Init()

  46. {

  47. TCNT2 = 0x06;

  48. TCCR2 = 0x03;//64分頻

  49. TIMSK |= (1<<TOIE2);//使能定時器2中斷

  50. }

  51. /**************************************************************

  52. 隸屬模塊:定時器測試模塊

  53. 函數(shù)名稱:Timer3_Init()

  54. 函數(shù)功能: 初始化

  55. 入口參數(shù): 無

  56. 返回參數(shù):無

  57. ***************************************************************/

  58. void Timer3_Init()

  59. {

  60. TCNT3H = 0x3C;

  61. TCNT3L = 0xB0;

  62. TCCR3A = 0x00;

  63. TCCR3B = 0x03;//64分頻

  64. ETIMSK |= (1<<TOIE3);//使能定時器3中斷

  65. }

  66. /************************測試函數(shù)**************************/

  67. int main(void)

  68. {

  69. DDRD = 0xF0;

  70. DDRE = 0xF0;

  71. LCD12864_Init();

  72. SREG &=~(1<<7);

  73. Timer0_Init();

  74. Timer1_Init();

  75. Timer2_Init();

  76. Timer3_Init();

  77. SREG |= (1<<7);

  78. LCD12864_Dis_Str(0,0,"定時器0:");

  79. LCD12864_Dis_Str(0,1,"定時器1:");

  80. LCD12864_Dis_Str(0,2,"定時器2:");

  81. LCD12864_Dis_Str(0,3,"定時器3:");

  82.     while(1)

  83.     {

  84.         //TODO:: Please write your application code

  85.   if(count0>1999){

  86.   count0=0;

  87.   flag0=(flag0+1)%10;

  88.   LCD12864_Dis_Ctr(5,0,flag0+0x30);

  89.   }

  90.   if(count1>4)

  91.   {

  92.    count1=0;  

  93.    flag1=(flag1+1)%10;

  94.    LCD12864_Dis_Ctr(5,1,flag1+0x30);

  95.   }

  96.   if(count2>999)

  97.   {

  98.    count2=0;  

  99.    flag2=(flag2+1)%10;

  100.    LCD12864_Dis_Ctr(5,2,flag2+0x30);

  101.   }

  102.   if(count3>4)

  103.   {

  104.    count3=0;  

  105.    flag3=(flag3+1)%10;

  106.    LCD12864_Dis_Ctr(5,3,flag3+0x30);

  107.   }

  108.     }

  109. }

  110. /**************************************************************

  111. 隸屬模塊:定時器測試模塊

  112. 函數(shù)名稱:SIGNAL(TIMER0_OVF_vect)

  113. 函數(shù)功能: 定時器0中斷函數(shù)

  114. 入口參數(shù): 無

  115. 返回參數(shù):無

  116. ***************************************************************/

  117. SIGNAL(TIMER0_OVF_vect)

  118. {

  119. TCNT0 = 0x06;

  120. count0++;

  121.    

  122. }

  123. /**************************************************************

  124. 隸屬模塊:定時器測試模塊

  125. 函數(shù)名稱:SIGNAL(TIMER1_OVF_vect)

  126. 函數(shù)功能: 定時器1中斷函數(shù)

  127. 入口參數(shù): 無

  128. 返回參數(shù):無

  129. ***************************************************************/

  130. SIGNAL (TIMER1_OVF_vect)

  131. {

  132. TCNT1H = 0x3C;

  133. TCNT1L = 0xB0;

  134. count1++;

  135. }

  136. /**************************************************************

  137. 隸屬模塊:定時器測試模塊

  138. 函數(shù)名稱:SIGNAL(TIMER2_OVF_vect)

  139. 函數(shù)功能: 定時器2中斷函數(shù)

  140. 入口參數(shù): 無

  141. 返回參數(shù):無

  142. ***************************************************************/

  143. SIGNAL (TIMER2_OVF_vect)

  144. {

  145. count2++;

  146. }

  147. /**************************************************************

  148. 隸屬模塊:定時器測試模塊

  149. 函數(shù)名稱:SIGNAL(TIMER3_OVF_vect)

  150. 函數(shù)功能: 定時器3中斷函數(shù)

  151. 入口參數(shù): 無

  152. 返回參數(shù):無

  153. ***************************************************************/

  154. SIGNAL (TIMER3_OVF_vect)

  155. {

  156. TCNT3H = 0x3C;

  157. TCNT3L = 0xB0;

  158. count3++;

  159. }
復制代碼


相關(guān)帖子

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表