и снова про меню.
- Войдите на сайт для отправки комментариев
Вс, 05/05/2013 - 19:50
Привет всем. подскажите как сделать меню.. листаю ину не чего по нормальному не расписанно...
как сохронять и где хранить переменные и данные. код для работы смоими кнопками...
//Sample using LiquidCrystal library #include <LiquidCrystal.h> /******************************************************* This program will test the LCD panel and the buttons Mark Bramwell, July 2010 ********************************************************/ // select the pins used on the LCD panel LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // define some values used by the panel and buttons int lcd_key = 0; int adc_key_in = 0; #define btnRIGHT 0 #define btnUP 1 #define btnDOWN 2 #define btnLEFT 3 #define btnSELECT 4 #define btnNONE 5 // read the buttons int read_LCD_buttons() { adc_key_in = analogRead(0); // read the value from the sensor // my buttons when read are centered at these valies: 0, 144, 329, 504, 741 // we add approx 50 to those values and check to see if we are close if (adc_key_in > 1000) return btnNONE; // We make this the 1st option for speed reasons since it will be the most likely result if (adc_key_in < 50) return btnRIGHT; if (adc_key_in < 195) return btnUP; if (adc_key_in < 380) return btnDOWN; if (adc_key_in < 555) return btnLEFT; if (adc_key_in < 790) return btnSELECT; return btnNONE; // when all others fail, return this... } void setup() { lcd.begin(16, 2); // start the library lcd.setCursor(0,0); lcd.print("Push the buttons"); // print a simple message } void loop() { lcd.setCursor(9,1); // move cursor to second line "1" and 9 spaces over lcd.print(millis()/1000); // display seconds elapsed since power-up lcd.setCursor(0,1); // move to the begining of the second line lcd_key = read_LCD_buttons(); // read the buttons switch (lcd_key) // depending on which button was pushed, we perform an action { case btnRIGHT: { lcd.print("RIGHT "); break; } case btnLEFT: { lcd.print("LEFT "); break; } case btnUP: { lcd.print("UP "); break; } case btnDOWN: { lcd.print("DOWN "); break; } case btnSELECT: { lcd.print("SELECT"); break; } case btnNONE: { lcd.print("NONE "); break; } } }
http://avrproject.ru/publ/menu_on_a_microcontroller_avr/1-1-0-33
help
помогите как организовать меню как тут.... или может у кого есть на подобии код.... для обучения
http://www.youtube.com/watch?v=NL3qjrhjtS0
Ну вот в стартовом посте и есть "наподобие код". Вполне нормальный код. Единственно что - непонятно зачем он на btnNone что-то пишет. Эта надпись None - может затирать что было до этого и нажатие других клавишь - будет видно только пока держишь кнопку. Я бы на bntNone - просто ничего не делал. Или начинал выводить его только, если с прошлого нажатия прошло не менее, скажем 2-х секунд.
И зачем case варианты обернуты скобками (ну скорее всего это не мешает).
По поводу "сохранять" - не очень понятно что именно вы хотите сохранять и на какое время. От этого зависит и куда сохранять в локальные переменные, в глобальные, в eeprom и т.п.
По поводу "сохранять" - не очень понятно что именно вы хотите сохранять и на какое время. От этого зависит и куда сохранять в локальные переменные, в глобальные, в eeprom и т.п.
Сохоронить в eeprom
Сохоронить в eeprom
Ну тогда EERPOM