реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Организация меню
rvk
сообщение Jan 5 2009, 12:13
Сообщение #16


Частый гость
**

Группа: Свой
Сообщений: 165
Регистрация: 13-05-06
Из: Камышин
Пользователь №: 17 067



Ну не знаю....2Кб это много. Очень много. Раньше на 2Кб делали текстовые операционные системы.
Сначала, наверное, нужно сделать все что касается математики и датчика температуры. Оптимизировать до предела, а потом думать что делать с менюшками.
Есть два пути.
Первый, перейти на ассемблер, и через JNZ, JZ сделать переходы меню.
Второй способ, использовать C, и его IF/ELSE или SWITCH/CASE.
Поставить максимальную оптимизацию по размеру и посмотреть, кто из них меньше памяти потребляет.
И после этого принимать решение, на чем писать и писать ли вообще.
Уверен, свободно можно уместиться в 2К на ассемблере, а возможно и на С, только нужно забыть
про такие понятия как структура, массив и косвенная адресация. Прямая и непосредственная адресация
дает максимальный выигрыш. Возможно, повторяю, возможно, накатать движок и к нему структуру,
которые вместе дадут больший выигрыш в размере при скажем десятке менюшек, в итоге. Но это и рискованно, можно время потерять без
толку и ненадежно, движок еще отладить нужно, а структуры так и норовят фигню подсунуть, все контролировать нужно. Поэтому
чем проще и корявее, тем как правило более некрасиво, но места занимает меньше....

Сообщение отредактировал rvk - Jan 5 2009, 12:17
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Jan 5 2009, 12:42
Сообщение #17


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(XVR @ Jan 5 2009, 15:03) *
Хм. У вас только СТРОКИ из самого меню забьют эту самую память программ (1 символ - 1 слово)

Эт точно. Там только через жо retlw можно символы сохранять sad.gif
Цитата
HI-TECH PICC, он пожалуй наилучший

Стремный он какой-то, этот Хайтек. То нельзя, это нельзя... Неудобно работать.

Цитата(rvk @ Jan 5 2009, 16:13) *
Первый, перейти на ассемблер, и через JNZ, JZ сделать переходы меню.

maniac.gif
Вне зависимости от языка реализации меню делается именно через то, что в Си называется структурой.
А 2к должно хватить. Но может не хватить одного байта biggrin.gif
Go to the top of the page
 
+Quote Post
petrd
сообщение Jan 5 2009, 14:07
Сообщение #18


Участник
*

Группа: Участник
Сообщений: 37
Регистрация: 3-06-08
Пользователь №: 38 012



Вот только сегодня обсуждали зачатки меню на структурах и указателях http://www.microchip.su/showthread.php?t=4781
Go to the top of the page
 
+Quote Post
XVR
сообщение Jan 5 2009, 14:20
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(_Pasha @ Jan 5 2009, 15:42) *
Стремный он какой-то, этот Хайтек. То нельзя, это нельзя... Неудобно работать.
Эээ, а чего в нем нельзя?
Цитата
А 2к должно хватить. Но может не хватить одного байта biggrin.gif
Угу, есть проект - таймер для солярия. Там некоторая интерактивная часть - для задания времени и количества интервалов загара, а так же для определения рабочих секций УФ ламп. Меню совсем немного, собственно таймера тоже немного, и остальной интерактив. Всего около 600 строк на С. Полностью забитая PIC16F628
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Jan 5 2009, 18:27
Сообщение #20


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(XVR @ Jan 5 2009, 18:20) *
Эээ, а чего в нем нельзя?

Навскидку, что запомнилось
Код
for(char i=0;i<10;i++) do_something();

Низзя объявить в цикле переменную.
Работать с флешом/еепромом тяжко. Этого, конечно мало, чтоб предъявить smile.gif, но сейчас не вспомню.
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Jan 6 2009, 03:46
Сообщение #21


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



Цитата(rvk @ Jan 5 2009, 07:13) *
Ну не знаю....2Кб это много. Очень много. Раньше на 2Кб делали текстовые операционные системы.


возможно. только не на PIC-ах.
Сколько байт там займет

if ( x > y) {
..
}


- сначала он загрузит W
- потом получит STATUS через вычитание.
- потом сравнит C - переполнение и перейдет кудато если не так
- в неидеальном варианте без переполнения тоже перейдет

на операцию у нас скоко уходит? 2 байта?
итого - 6-8 ?

они ужасны, ети PIC-и (каску надел)
у самого штук 100 - и жаба давит и сделать ничего не могу.


Цитата(_Pasha @ Jan 5 2009, 13:27) *
Навскидку, что запомнилось
Код
for(char i=0;i<10;i++) do_something();

Низзя объявить в цикле переменную.
Работать с флешом/еепромом тяжко. Этого, конечно мало, чтоб предъявить smile.gif, но сейчас не вспомню.


ето верно. в последдних gcc тоже вроде нельзя


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
XVR
сообщение Jan 6 2009, 04:35
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(_Pasha @ Jan 5 2009, 21:27) *
Навскидку, что запомнилось
Код
for(char i=0;i<10;i++) do_something();

Низзя объявить в цикле переменную.
Это С++ (или С99). Ни один эмбеддед чистый С компилятор это не поддерживает 05.gif
Цитата
Работать с флешом/еепромом тяжко.
Это есть, но не смертельно. Кроме того, в последних версиях уже появились переменные в EEPROM (вот только не помню, в PICC или только в PICC 18)
Go to the top of the page
 
+Quote Post
zksystem
сообщение Jan 24 2009, 14:29
Сообщение #23


embedder
***

Группа: Свой
Сообщений: 264
Регистрация: 11-05-05
Из: Казань
Пользователь №: 4 911



экономить память можно следующим способом, как это делалось в старых играх для 8и битных компьютеров:
создается словарь слов, каждому слову назначается соответствующий индекс, в итоге предложение (текст) получается в виде цепочки индексов.


--------------------
Мечты стареют куда быстрее мечтателей… Стивен Кинг. "Ловец снов"
Go to the top of the page
 
+Quote Post
chert_kol
сообщение Feb 1 2009, 17:24
Сообщение #24


Частый гость
**

Группа: Свой
Сообщений: 90
Регистрация: 23-01-09
Из: Санкт-Петербург
Пользователь №: 43 842



А может стоит поставить внешнюю Flash и написать нормальную менюшку с применением указателей. Потом кучу времени сэкономишь на разборке кода. Я поставил AT45.... 16Мбит. Для меню за глаза...


--------------------
С уважением,
Chert_kol.
Go to the top of the page
 
+Quote Post
INT1
сообщение Feb 2 2009, 04:08
Сообщение #25


deleted
****

Группа: Свой
Сообщений: 555
Регистрация: 28-08-05
Пользователь №: 8 024



Цитата(chert_kol @ Feb 1 2009, 20:24) *
А может стоит поставить внешнюю Flash и написать нормальную менюшку с применением указателей. Потом кучу времени сэкономишь на разборке кода. Я поставил AT45.... 16Мбит. Для меню за глаза...

Он же пишет, что все руки/ноги забиты(я ж надеюсь, ЛЦД полубайтами грузится ?). И потом, есть ли у этого PIC_a SPI ?, что то сдается мне, что АТ45 будет как корове седло на нем.
Go to the top of the page
 
+Quote Post
chert_kol
сообщение Feb 4 2009, 05:17
Сообщение #26


Частый гость
**

Группа: Свой
Сообщений: 90
Регистрация: 23-01-09
Из: Санкт-Петербург
Пользователь №: 43 842



Цитата(INT1 @ Feb 2 2009, 07:08) *
Он же пишет, что все руки/ноги забиты(я ж надеюсь, ЛЦД полубайтами грузится ?). И потом, есть ли у этого PIC_a SPI ?, что то сдается мне, что АТ45 будет как корове седло на нем.


Как говорил мой начальник всегда есть выход...

Вот одно богатое место (я про дисплей)...

А SPI можно и ручками написать один черт будет меньше чем хранить мену в PIC


--------------------
С уважением,
Chert_kol.
Go to the top of the page
 
+Quote Post
Eddy71
сообщение Feb 11 2009, 18:27
Сообщение #27


Местный
***

Группа: Свой
Сообщений: 224
Регистрация: 23-11-08
Из: Украина, Луганск
Пользователь №: 41 879



Цитата(A. Fig Lee @ Jan 6 2009, 06:46) *
возможно. только не на PIC-ах.
Сколько байт там займет
if ( x > y) {
..
}

movf x,w
subwf y,w
bnc дальше
{
...
}
Цитата
на операцию у нас скоко уходит? 2 байта?
итого - 6-8 ?

У PICов память в словах. Для того же 628-го 2к слов. 1 такт - одно слово. 4 машинных слова. Это много?

Сообщение отредактировал Eddy71 - Feb 11 2009, 18:32


--------------------
«Чтобы что-то изобрести, вам потребуется хорошее воображение и куча мусора» /Томас Эдисон/
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 14:15
Рейтинг@Mail.ru


Страница сгенерированна за 0.0148 секунд с 7
ELECTRONIX ©2004-2016