Advertisement
miszczo

LCD MENU AVR

Nov 1st, 2015
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.03 KB | None | 0 0
  1. /*
  2.  * main.c
  3.  *
  4.  *  Created on: 7 maj 2014
  5.  *      Author: miszczo
  6.  */
  7.  
  8.  
  9. #include <avr/io.h>
  10. #include <avr/pgmspace.h>
  11. #include <util/delay.h>
  12.  
  13.  
  14. #include "pcd8544.h"
  15. #include "keyboard.h"
  16. #include "radio.h"
  17. #include "termometr.h"
  18.  
  19. const char menu[6][15] PROGMEM =
  20. {
  21.     "ZEGAR         ",
  22.     "WOLTOMIERZ    ",
  23.     "TERMOMETR     ",
  24.     "RADIO         ",
  25.     "DEMO          ",
  26.     "USTAWIENIA    "
  27. };
  28.  
  29. uint8_t kp_up,kp_down,kp_left,kp_right,kp_ok,kp_esc;
  30.  
  31.  
  32.  
  33. int main()
  34. {
  35.     pcd_init();
  36.     keyboard_init();
  37.  
  38.     uint8_t kp_up,kp_down,kp_left,kp_right,kp_ok,kp_esc;
  39.  
  40.     uint8_t menu_pos = 0;
  41.  
  42.     while(1)
  43.     {
  44.         keyboard_get(&kp_up , &kp_down , &kp_right , &kp_left , &kp_ok , &kp_esc);
  45.         if(menu_pos==6) menu_pos=0;
  46.         if(menu_pos==(255)) menu_pos=5;
  47.  
  48.         for(uint8_t i = 0; i<6;i++){
  49.             pcd_locate(i,0);
  50.             if(i == menu_pos) pcd_str_P_neg(menu[i]);
  51.             else pcd_str_P(menu[i]);
  52.         }
  53.  
  54.         if(kp_down)menu_pos++;
  55.         if(kp_up)menu_pos--;
  56.  
  57.         if(kp_ok)
  58.         {
  59.             if(menu_pos==3) radio();
  60.             if(menu_pos==2) termometr();
  61.         }
  62.  
  63.     }
  64.  
  65.  
  66.  
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement