| Автор |
Съобщение |
|
haliobabalio
Ранг: Минаващ
Регистриран на: Съб Ное 30, 2013 11:04 am Мнения: 4
|
 Ламерски въпрос !
Искам да питам някой ако може да ми помогне . Дава ми грешка MikroC (7 433 Not enough RAM for call stack __Lib_Delays.c)
|
| Сря Яну 22, 2014 12:28 pm |
|
 |
|
Vesko
Ранг: Популярен
Регистриран на: Пон Мар 22, 2010 8:52 pm Мнения: 328
|
 Re: Ламерски въпрос !
Надали е добра идея в ISR-a да викаш функции за писане по LSD. При PIC стацк ресусрса май беше ограничен.
|
| Сря Яну 22, 2014 12:43 pm |
|
 |
|
ike
Ранг: Форумен бог
Регистриран на: Пет Фев 04, 2005 9:59 pm Мнения: 6019 Местоположение: София
|
 Re: Ламерски въпрос !
Това е за друга платформа, но ще те насочи, как по принцип трябва да изглежда програмата ти: http://www.ti.com/lit/an/slaa294a/slaa294a.pdf
_________________ Warriors of the Night, ASSEMBLER!!!
|
| Сря Яну 22, 2014 12:53 pm |
|
 |
|
haliobabalio
Ранг: Минаващ
Регистриран на: Съб Ное 30, 2013 11:04 am Мнения: 4
|
 Re: Ламерски въпрос !
Просто исках да си направя меню с ротари енкодер ако някой може да ми помогне
|
| Сря Яну 22, 2014 2:40 pm |
|
 |
|
Vesko
Ранг: Популярен
Регистриран на: Пон Мар 22, 2010 8:52 pm Мнения: 328
|
 Re: Ламерски въпрос !
Например в ISR-a само записваш новата позиция за меню-то, без да го рисужаш. А в main накрая слагаш нещо подобно.
while(1) { if(new_position != last position) { last_postion = new_position); draw_menu(last_posotion); } }
|
| Сря Яну 22, 2014 2:57 pm |
|
 |
|
haliobabalio
Ранг: Минаващ
Регистриран на: Съб Ное 30, 2013 11:04 am Мнения: 4
|
 Re: Ламерски въпрос !
Значи мерси много на теб и колегата преработих кода по прочетох малко а сега като избера примерно Меню 1 и ми мига сигурно от while(1) как да го променя? ето качвам новия код
|
| Чет Фев 06, 2014 12:43 pm |
|
 |
|
michev
Ранг: Форумен бог
Регистриран на: Сря Юли 11, 2007 10:16 am Мнения: 1730
|
 Re: Ламерски въпрос !
Ами ако се придържаме към това което си написал, може да се модифицира до следния вариант, който няма да ти "мига"  Само промените -  |  |  |  | Код: void interrupt(){ .. if(encoder_counter<4) encoder_counter++; .. } ... void Main() { unsigned char last_state = 0; ... init(); Lcd_Out(1, 1, " Menu ");
while(1) { if (last_state != encoder_counter) { last_state = encoder_counter;
switch(encoder_counter){ case 1: Lcd_Out(1, 1, " Menu 1 "); break; case 2: Lcd_Out(1, 1, " Menu 2 "); break; case 3: Lcd_Out(1, 1, " Menu 3 "); break; case 4: Lcd_Out(1, 1, " Menu 4 "); break; } } }
|  |  |  |  |
|
| Чет Фев 06, 2014 3:31 pm |
|
 |
|
haliobabalio
Ранг: Минаващ
Регистриран на: Съб Ное 30, 2013 11:04 am Мнения: 4
|
 Re: Ламерски въпрос !
Значи всичко е 6 Благодаря ти много и искам да питам как сега да си сторя под менюта с бутона от енкодера  тоест как да : if(encoder_counter == 1) и тук какво се пишеше май && if(бутона на енкодера 1,1,) void Menu1(); нещо такова май аз си го написах if(Button(&PORTB, 4, 1, 1) && encoder_counter == 1){ но все пак Благодаря надявам се и за напред ако има нещо да помагате 
|
| Пет Фев 07, 2014 11:11 am |
|
|