Смотрю прям много уже написали. Давайте немного с предметкой разберемся. Просмотрел еще раз как либа работает с данными в ф-ии drawBitmap и там все верно - читаем через pgm_read_word(&data[tc]);, ну и еще бы это было не так, не работало бы тогда).
Buzzer2010 - тот скетч, который у тебя не завелся и где ты удалял progmem был некорректный) ты ведь удалял progmem'ы в файле исходника скетча, а нев файле с иконками (где progmem'ы есть и никуда их девать не надо). Так что думаю о том случае стоит забыть) Ведь этот скетч у тебя будетработать? - https://yadi.sk/d/UUaLcRh43Er9Ru
Подкорректирую вводную - когда объем занимаемого флеша переваливает за 100KB (или в том районе, уточну позже), вывод на экран отваливается, выкидываем отрисовку одной иконки, объем занимаего флеша уменьшается и все снова работает. Вот конкретный пример: если я использую скетч, где только отрисовка иконок, то (грубо) я могу отрисовать 10 иконок, когда я юзаю те же иконки, но в составе другого скетча, где когда в районе 1000строк, то могу отрисовать только 5 иконок.
andriano - объясни, правильно ли я понял, что объем инфы которую мы можем считать из флеша ограничен?
В общем случае - нет. Но в конкретном может быть ограничен. По логике, если в названии функции присутствует суффикс "near", читать ею можно только из первых 64к.
В общем случае - нет. Но в конкретном может быть ограничен. По логике, если в названии функции присутствует суффикс "near", читать ею можно только из первых 64к.
Тогда не ясно что происходит. Если это натолкнет на какие то мысли, то вот еще: если в код навтыкать выводов в порт, то после запуска скетча можно будет увидеть, что в порт инфа пишется, что гоорвит о том, что исходный код выполняется, но на экране ничего, не одна операция вывода на экран ничео не отрисует
Buzzer2010 - тот скетч, который у тебя не завелся и где ты удалял progmem был некорректный) ты ведь удалял progmem'ы в файле исходника скетча, а нев файле с иконками (где progmem'ы есть и никуда их девать не надо). Так что думаю о том случае стоит забыть) Ведь этот скетч у тебя будет работать? - https://yadi.sk/d/UUaLcRh43Er9Ru
Работает так же как и предидущий, с учётом того что у нас разрешения и чипы дисплеев - разные. Даже фоткать не буду - всё так же точно как и прошлый раз - не вмещается ))))
Скетч использует 117824 байт (22%) памяти устройства.
Работает так же как и предидущий, с учётом того что у нас разрешения и чипы дисплеев - разные. Даже фоткать не буду - всё так же точно как и прошлый раз - не вмещается ))))
Скетч использует 117824 байт (22%) памяти устройства.
Кстати насчёт машинки надо как-нить засесть. Я-то так нифига и не понял как одну только машинку из шрифта выдернуть ((
С машинкой все просто. Берешь кусок массива, соотвествующий машинке, создаешь его какмассив с иконкой (примеров массива с иконками теперь предостаточно), считаешь его размер и потом юзаешь все это как иконку. К сожалению моя ардуина не всегда рядом, будет время мб проверну это
Не, он наверно имел ввиду размер массива. Блин, никак ниасилю эту машинку... Где-то видел как описываются шрифты, хотел изучить, да потерял где видел. надо поискать. там первые 4 бита что-то значат. мне писали тут... блин...
Блин, никак ниасилю эту машинку... Где-то видел как описываются шрифты, хотел изучить, да потерял где видел. надо поискать. там первые 4 бита что-то значат. мне писали тут... блин...
4 байта - это заголовок.
По формуле выше - размер данных.
Что значит каждый байт заголовка - да, писал.
Единственное, чего не написал, это что длина массива, который состоит из заголовка и данных, равна сумме длины заголовка и длины данных.
Блин, никак ниасилю эту машинку... Где-то видел как описываются шрифты, хотел изучить, да потерял где видел. надо поискать. там первые 4 бита что-то значат. мне писали тут... блин...
4 байта - это заголовок.
По формуле выше - размер данных.
Что значит каждый байт заголовка - да, писал.
Единственное, чего не написал, это что длина массива, который состоит из заголовка и данных, равна сумме длины заголовка и длины данных.
да это я помню, что размер массива был 96 + 4 байта заголовок, да. Это я помню. там только заплёт с размером шрифта в точках. Какой-то байт должен отвечать за это....
Смотрю прям много уже написали. Давайте немного с предметкой разберемся. Просмотрел еще раз как либа работает с данными в ф-ии drawBitmap и там все верно - читаем через pgm_read_word(&data[tc]);, ну и еще бы это было не так, не работало бы тогда).
Buzzer2010 - тот скетч, который у тебя не завелся и где ты удалял progmem был некорректный) ты ведь удалял progmem'ы в файле исходника скетча, а нев файле с иконками (где progmem'ы есть и никуда их девать не надо). Так что думаю о том случае стоит забыть) Ведь этот скетч у тебя будетработать? - https://yadi.sk/d/UUaLcRh43Er9Ru
Подкорректирую вводную - когда объем занимаемого флеша переваливает за 100KB (или в том районе, уточну позже), вывод на экран отваливается, выкидываем отрисовку одной иконки, объем занимаего флеша уменьшается и все снова работает. Вот конкретный пример: если я использую скетч, где только отрисовка иконок, то (грубо) я могу отрисовать 10 иконок, когда я юзаю те же иконки, но в составе другого скетча, где когда в районе 1000строк, то могу отрисовать только 5 иконок.
andriano - объясни, правильно ли я понял, что объем инфы которую мы можем считать из флеша ограничен?
В общем случае - нет. Но в конкретном может быть ограничен. По логике, если в названии функции присутствует суффикс "near", читать ею можно только из первых 64к.
В общем случае - нет. Но в конкретном может быть ограничен. По логике, если в названии функции присутствует суффикс "near", читать ею можно только из первых 64к.
Тогда не ясно что происходит. Если это натолкнет на какие то мысли, то вот еще: если в код навтыкать выводов в порт, то после запуска скетча можно будет увидеть, что в порт инфа пишется, что гоорвит о том, что исходный код выполняется, но на экране ничего, не одна операция вывода на экран ничео не отрисует
Работает так же как и предидущий, с учётом того что у нас разрешения и чипы дисплеев - разные. Даже фоткать не буду - всё так же точно как и прошлый раз - не вмещается ))))
Скетч использует 117824 байт (22%) памяти устройства.
Работает так же как и предидущий, с учётом того что у нас разрешения и чипы дисплеев - разные. Даже фоткать не буду - всё так же точно как и прошлый раз - не вмещается ))))
Скетч использует 117824 байт (22%) памяти устройства.
Так и должно было быть
Ну и где ты там?
Кстати насчёт машинки надо как-нить засесть. Я-то так нифига и не понял как одну только машинку из шрифта выдернуть ((
Ну и где ты там?
Кстати насчёт машинки надо как-нить засесть. Я-то так нифига и не понял как одну только машинку из шрифта выдернуть ((
С машинкой все просто. Берешь кусок массива, соотвествующий машинке, создаешь его какмассив с иконкой (примеров массива с иконками теперь предостаточно), считаешь его размер и потом юзаешь все это как иконку. К сожалению моя ардуина не всегда рядом, будет время мб проверну это
"Считаешь его размер" - это как ?
"Считаешь его размер" - это как ?
= Width*Height*BitsPerPixel/BitsPerByte
"Считаешь его размер" - это как ?
= Width*Height*BitsPerPixel/BitsPerByte
Не, он наверно имел ввиду размер массива.
А я о чем?
Блин, никак ниасилю эту машинку... Где-то видел как описываются шрифты, хотел изучить, да потерял где видел. надо поискать. там первые 4 бита что-то значат. мне писали тут... блин...
По формуле выше - размер данных.
Что значит каждый байт заголовка - да, писал.
Единственное, чего не написал, это что длина массива, который состоит из заголовка и данных, равна сумме длины заголовка и длины данных.
Не, он наверно имел ввиду размер массива.
А я о чем?
Блин, никак ниасилю эту машинку... Где-то видел как описываются шрифты, хотел изучить, да потерял где видел. надо поискать. там первые 4 бита что-то значат. мне писали тут... блин...
По формуле выше - размер данных.
Что значит каждый байт заголовка - да, писал.
Единственное, чего не написал, это что длина массива, который состоит из заголовка и данных, равна сумме длины заголовка и длины данных.
да это я помню, что размер массива был 96 + 4 байта заголовок, да. Это я помню. там только заплёт с размером шрифта в точках. Какой-то байт должен отвечать за это....
0-й - ширина,
1-й - высота,
2-й - ASCII код первого символа,
3-й - количество символов.
Ну как процесс, получилось что нибудь?
что скажете, гуру AVR ?
Короче, из много опытов (что было под рукой MegaCore на Atmega128 и дисп 480x320 ) ,
появился вывод , что существует ограничение на размещение констант (иконок, данных,..) в памяти для команд.
если по этому поводу , то лучше в отдельную тему
avr ограничение на объем данных размещенных в Flash памяти програмы
http://arduino.ru/forum/programmirovanie/avr-ogranichenie-na-obem-dannykh-razmeshchennykh-v-flash-pamyati-programy
// mazahaker, ежели что, фотку могу убрать
Фотка не исходники, ничего страшного)