Отговори на тема  [ 8 мнения ] 
Ламерски въпрос ! 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Съб Ное 30, 2013 11:04 am
Мнения: 4
Мнение Ламерски въпрос !
Искам да питам някой ако може да ми помогне .
Дава ми грешка MikroC (7 433 Not enough RAM for call stack __Lib_Delays.c)


Прикачени файлове:
MyProject1.c [2.79 KiB]
250 пъти
Сря Яну 22, 2014 12:28 pm
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Пон Мар 22, 2010 8:52 pm
Мнения: 328
Мнение Re: Ламерски въпрос !
Надали е добра идея в ISR-a да викаш функции за писане по LSD. При PIC стацк ресусрса май беше ограничен.


Сря Яну 22, 2014 12:43 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пет Фев 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
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Съб Ное 30, 2013 11:04 am
Мнения: 4
Мнение Re: Ламерски въпрос !
haliobabalio написа:
Искам да питам някой ако може да ми помогне .
Дава ми грешка MikroC (7 433 Not enough RAM for call stack __Lib_Delays.c)

Просто исках да си направя меню с ротари енкодер ако някой може да ми помогне


Сря Яну 22, 2014 2:40 pm
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Пон Мар 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
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Съб Ное 30, 2013 11:04 am
Мнения: 4
Мнение Re: Ламерски въпрос !
Vesko написа:
Например в ISR-a само записваш новата позиция за меню-то, без да го рисужаш. А в main накрая слагаш нещо подобно.

while(1)
{
if(new_position != last position)
{
last_postion = new_position);
draw_menu(last_posotion);
}
}


Значи мерси много на теб и колегата
преработих кода по прочетох малко а сега като избера примерно Меню 1 и ми мига сигурно от while(1)
как да го променя?
ето качвам новия код


Прикачени файлове:
ro2.c [2.24 KiB]
235 пъти
Чет Фев 06, 2014 12:43 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Сря Юли 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
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Съб Ное 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
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 8 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 2 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни