Advertisement
Guest User

Untitled

a guest
Mar 27th, 2015
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.92 KB | None | 0 0
  1. #include <basedef.h>
  2. #include <Board.h>
  3. #include <stdio.h>
  4.  
  5. #include <fixedsys.h>
  6. #include <lcd_GE8.h>
  7.  
  8. #include <rtt.h>
  9.  
  10. int h, m, s, c;
  11. int ticks = 0;
  12.  
  13. void RTT_myIrqHandler(void) __irq
  14. {
  15. //... Your code goes here
  16.  
  17. ticks++;
  18. AT91F_TC_GetStatus( AT91C_BASE_TC0 );
  19. AT91F_AIC_AcknowledgeInterrupt(AT91C_BASE_AIC);
  20. }
  21.  
  22. int main()
  23. {
  24. char msg[100];
  25. Color_t bckgColor=LCD_COLOR_RED;
  26.  
  27. /* any other variables you need ... */
  28.  
  29. /* Initialize the Atmel AT91SAM7X256 (watchdog, PLL clock, default interrupts, etc.) */
  30. AT91F_LowLevel_Init();
  31.  
  32. InitLCD();
  33. LCD_ClearScreen( bckgColor );
  34.  
  35. /* RTT init */
  36. RTT_Init( (void(*)()) RTT_myIrqHandler);
  37.  
  38. h = m = s = 0;
  39.  
  40. /* enable interrupts */
  41. AT91F_Finalize_Init();
  42.  
  43. /* add your program here ... */
  44. //LCD_WriteString("My timer:", FONT_DESCRIPTOR, 10, 10, LCD_COLOR_BLACK, bckgColor);
  45.  
  46. /* your main loop ... */
  47. while ( true )
  48. {
  49. __disable_irq();
  50. c += ticks;
  51. ticks = 0;
  52. __enable_irq();
  53.  
  54. c%=20; //c=c+1; if (c==20) c=0;
  55. if (!c) { //if (c==0) ... //One second passed...
  56. ++s;
  57. s%=60; //s=s+1; if (s==60) s=0;
  58. if (!s) { //if (s==0) ... //One minute passed...
  59. ++m;
  60. m%=60; //m=m+1; if (m==60) m=0;
  61. //...
  62. }
  63. }
  64. sprintf(msg, "%02d:%02d:%02d", h, m, s);
  65. LCD_WriteString(msg, FONT_DESCRIPTOR, 35, 40, LCD_COLOR_BLACK, bckgColor);
  66. }
  67.  
  68. /* The answer of every question in the universe */
  69. return 42;
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement