вот теперь вы мне доходчиво пояснили смысл проделываемого. только я поняла так. первые 18 картинок мы обозначаем как const byte bild_01[] PROGMEM1= , const byte bild_02[] PROGMEM1= , const bild_03[] PROGMEM1= и так далее для первых 18 картинок, после PROGMEM2= для следуюших 17 картинок и т.д. верно или нет
я так поняла, записав вот как const byte _bild_01[] PROGMEM1={далее нолики и единицы}; далее все как есть, не меняя и case 1: for (int l=0; l<18; l++){SendRecSPI(pgm_read_byte_far(pgm_get_far_address(bild_01)));} break; с одним файлом скомпеллировалось. но это 1 файл, а как прописать первые 18, а потом 2 блок 18 и 3 блок 17?я думаю так. 18 файлов с маркировкой PROGMEM1= , 18 файлов с маркировкой PROGMEM2=, и 17 файлов с маркировкой PROGMEM3= это я поняла, а далее pgm_read_byte_far(pgm_get_far_address(bild_01,02,03 и т.д до 18 файлов)));} а следующий пакет 18 файлов так pgm_read_byte_far_far(pgm_get_far_far_address(bild_01,02,03 и т.д до 18 файлов)));} и третий пакет 17 файлов pgm_read_byte_far_far_far(pgm_get_far_far_far_address(bild_01,02,03 и т.д до 17 файлов)));}или ознакомившись с примером GitHub. значит const byte far _bild_01[] PROGMEM1={далее нолики и единицы}; const byte far_bild_02[] PROGMEM1={далее нолики и единицы}; const byte far_bild_01[] PROGMEM1={далее нолики и единицы};и до первого пакета 18 файлов PROGMEM1= середину не указываю и switch (mode) {
11 for(i = 0; i < sizeof(far_bild_01); i++)
12 {
13 c = pgm_read_byte_far(pgm_get_far_address(far_bild_01) + i);
14 Serial.write(c);
15 }
и далее все также только far_far ко 2 пакету и к 3 пакету far_far_far
а в какое место прописать вот эти строки void print_progmem()
вот что получается если записать так //Bild_02 //1-48 листья
const byte bild_02[] PROGMEM1=
{0000111};
//Bild_03 //1-48 листья
const byte bild_03[] PROGMEM1=
{ код};
//Bild_04 //1-48 листья
const byte bild_04[] PROGMEM1=
{ код};
//Bild_05 //1-48 листья
const byte bild_05[] PROGMEM1=
{ код};
case 1: for (int l=0; l<18; l++){SendRecSPI(pgm_read_byte_far(pgm_get_far_address(bild_01) + pointer + 1));}
break;
case 2: for (int l=0; l<18; l++){SendRecSPI(pgm_read_byte_far(pgm_get_far_address(bild_02) + pointer + 1));}
break;
case 3: for (int l=0; l<18; l++){SendRecSPI(pgm_read_byte_far(pgm_get_far_address(bild_03) + pointer + 1));}
break;
case 4: for (int l=0; l<18; l++){SendRecSPI(pgm_read_byte_far(pgm_get_far_address(bild_04) + pointer + 1));}
break;
case 5: for (int l=0; l<18; l++){SendRecSPI(pgm_read_byte_far(pgm_get_far_address(bild_05) + pointer + 1));}
break; и так до 18 файлов. компилируется. а если дальше прибавлять. вот так
//Bild_19 //1-48 листья
const byte bild_19[] PROGMEM2=
{-----};
//Bild_20 //1-48 листья
const byte bild_20[] PROGMEM2=
{-----};
//Bild_21 //1-48 листья
const byte bild_21[] PROGMEM2=
{-------};
//Bild_22 //1-48 листья
const byte bild_22[] PROGMEM2=
{--------};
case 19: for (int l=0; l<18; l++){SendRecSPI(pgm_read_byte_far_far(pgm_get_far_far_address(bild_19) + pointer + 1));}
break;
case 20: for (int l=0; l<18; l++){SendRecSPI(pgm_read_byte_far_far(pgm_get_far_far_address(bild_20) + pointer + 1));}
break;
case 21: for (int l=0; l<18; l++){SendRecSPI(pgm_read_byte_far_far(pgm_get_far_far_address(bild_21) + pointer + 1));}
break;
case 22: for (int l=0; l<18; l++){SendRecSPI(pgm_read_byte_far_far(pgm_get_far_far_address(bild_22) + pointer + 1));}
break;
на case 22 ошибка.
вот так тоже пробовала //Bild_19 //1-48 листья
const byte far-bild_19[] PROGMEM2=
{}; ошибка в строке case 22
ошибка выдается не было заявлено в объеме . `pgm_get_far_far_address`was not declared in this scope как это правильно написать
извините пожалуйста . а я правильно попала, на форум? то есть, это то место, где можно задавать разные интересующие тебя вопросы по теме и желающие! и знающие! могут ответить на эти вопросы, по мере возможности и знаний. или я ошибаюсь. здесь просто съезд учёных со всего мира, а я влезла со своими глупыми и дурными вопросами, а может здесь просто отдел сатиры и юмора. только не обижайтесь пожалуйста будьте добры. хорошо?!
если все строки case 22: for (int l=0; l<18; l++){SendRecSPI(pgm_read_byte_far(pgm_get_far_address(bild_22) + pointer + 1));} написать одинаково. от и до. все компилируется. завтра загружу и проверю
извините пожалуйста . а я правильно попала, на форум? то есть, это то место, где можно задавать разные интересующие тебя вопросы по теме и желающие! и знающие! могут ответить на эти вопросы, по мере возможности и знаний. или я ошибаюсь. здесь просто съезд учёных со всего мира, а я влезла со своими глупыми и дурными вопросами, а может здесь просто отдел сатиры и юмора. только не обижайтесь пожалуйста будьте добры. хорошо?!
Нет.
Задавать разные вопросы, как и на подавляющем большинстве других форумов, здесь не следует (разве что в разделе "Отвлеченные темы"). Вопросы следует задавать только по тематике форума.
Но следует понимать, что основное назначение форума - это общение по интересам, а не ответы на вопросы.
где можно задавать разные интересующие тебя вопросы по теме и желающие! и знающие! могут ответить на эти вопросы, по мере возможности и знаний. я не так написала в №58 ?
Смысл поступления девушек на ВТ (как впрочем почти налюбую другую специальность) - выйти замуж. Ну а обучение помогает потом не сидеть полной дурой, когда муж рассказывает о работе :)
а в чем причина. все сделала как написано 18 файлов прописала как PROGMEM1= и 4 файла PROGMEM2= скомпилировалось без ошибок, но при загрузке в плату avrdude:stk500_getsync() attempt 1of 10 not in sync: resp=0xde сток таких от 1 до 10 и ошибка загрузки в плату.
ха-ха все поняли ваш юмор и посмеялись. я не обиделась. по этому я здесь и пришла к мальчикам умным и хорошим за помощью. потерпите девушку и если есть желание помогите ей глобус доделать что бы побольше картинок было . только и всего .
после внесения изменений, все картинки стали отображаться не правильно. я все таки думаю что вот это {SendRecSPI(pgm_read_byte_far(pgm_get_far_address(bild_11) + pointer + 1));} надо написать как то так {SendRecSPI(pgm_read_byte_far(pgm_get_far_address(bild_11 + pointer + 1)));} хотя на все 100% и не права.
после внесения изменений, все картинки стали отображаться не правильно. я все таки думаю что вот это {SendRecSPI(pgm_read_byte_far(pgm_get_far_address(bild_11) + pointer + 1));} надо написать как то так {SendRecSPI(pgm_read_byte_far(pgm_get_far_address(bild_11 + pointer + 1)));} хотя на все 100% и не права.
разбирая написанное в №51 ведь там написано что все что свыше 65535 будет нарушаться алгоритм . так может первые 18 картинок надо писать как в исходнике, а вот, то что становится свыше 65535 уже прописывать как вы указывали ведь первые 18 картинок укладываются в рамки 65535 . это мое чисто логическая думка не основанная на знаниях
и не нужно менять штатное ядро и так будет всё работать.
Да - в цикле "for" переменная цикла - "l" это не "и" и не "I" и не "1", это, ...ля, ЭЛЬ ЛАТИНСКАЯ!!!!!!!!!!!
=======================
ОФФТОП: напомню, мне -51 и женат я уже 31 год. Обсуждаем с женой покупку яхты для проведения старости в море. Вроде всё постепенно согласовывается. Жена замолкает на время... и выдаёт: "Нужно мне у Кати (её маникюрша) взять уроки как с машинкой работать, а то как я на лодке буду за ногтями ухаживать?" !!!!!!РУКА-ЛИЦО!!!!!! Бабе - шестой десяток, она думает не о том, как быть, если солярка в океане закончится в штиль, а о том, что с ноготками делать!!!! Дамы - отдельный вид животных, очень похожие на людей, но не люди - это я как большой специалист говорю!
В 13 все посчитано - все что больше 65535 приведет к ошибке работы алгоритма
для обхода этого и подключали MegaCore
теперь 18 картинок можно разместить в PROGMEM1 + 18 картинок можно разместить в PROGMEM2 + 17 картинок можно разместить в PROGMEM3
можно еще и в PROGMEM, но столько - что бы картинки в PROGMEM и код поместились строго в 64К
я точно не смеюсь - я рыдаю
вот теперь вы мне доходчиво пояснили смысл проделываемого. только я поняла так. первые 18 картинок мы обозначаем как const byte bild_01[] PROGMEM1= , const byte bild_02[] PROGMEM1= , const bild_03[] PROGMEM1= и так далее для первых 18 картинок, после PROGMEM2= для следуюших 17 картинок и т.д. верно или нет
по 18 в 1 и 2
17 в 3 (что бы не затереть загрузчик)
думаю штук 10-15 и в просто PROGMEM можно, но это надо тестировать
на это симулятор и рассчитан. все верно. поняла изначально весь объём картинок посчитать и распределить грамотно.
я так поняла, записав вот как const byte _bild_01[] PROGMEM1={далее нолики и единицы}; далее все как есть, не меняя и case 1: for (int l=0; l<18; l++){SendRecSPI(pgm_read_byte_far(pgm_get_far_address(bild_01)));} break; с одним файлом скомпеллировалось. но это 1 файл, а как прописать первые 18, а потом 2 блок 18 и 3 блок 17?я думаю так. 18 файлов с маркировкой PROGMEM1= , 18 файлов с маркировкой PROGMEM2=, и 17 файлов с маркировкой PROGMEM3= это я поняла, а далее pgm_read_byte_far(pgm_get_far_address(bild_01,02,03 и т.д до 18 файлов)));} а следующий пакет 18 файлов так pgm_read_byte_far_far(pgm_get_far_far_address(bild_01,02,03 и т.д до 18 файлов)));} и третий пакет 17 файлов pgm_read_byte_far_far_far(pgm_get_far_far_far_address(bild_01,02,03 и т.д до 17 файлов)));}или ознакомившись с примером GitHub. значит const byte far _bild_01[] PROGMEM1={далее нолики и единицы}; const byte far_bild_02[] PROGMEM1={далее нолики и единицы}; const byte far_bild_01[] PROGMEM1={далее нолики и единицы};и до первого пакета 18 файлов PROGMEM1= середину не указываю и switch (mode) {
Раз вы не можете сделать иначе -
делайте bild_19 case 19 т так до упора ...
ещё раз (крайний) передача байта - SendRecSPI(pgm_read_byte_far(pgm_get_far_address(bild_01) + pointer + l))
Мошт, лучше на кулинарные курсы пойдёшь, всё толку больше будет
вот что получается если записать так //Bild_02 //1-48 листья
Идите на ... крестиком вышивать ...
56 пост читали или «чукча не читатель - чукча писатель» ???
какой ...far_far... ???
«дебилы блять» Лавров С.В.
Регистрация на форуме 2018 год !!! По какой книге вы самообразовываетесь ???
я может и не правильно написала, полностью согласна, но я руководствовалась примером с GitHub
const char far_away[] PROGMEM1 =
02 const char far_far_away[] PROGMEM2 =
если все строки case 22: for (int l=0; l<18; l++){SendRecSPI(pgm_read_byte_far(pgm_get_far_address(bild_22) + pointer + 1));} написать одинаково. от и до. все компилируется. завтра загружу и проверю
чукча не только, читатель и писатель. а еще домысливатель! во как!
чукча не только, читатель и писатель. а еще домысливатель! во как!
чота, на гиганта домысливания ты нихрена не тянешь.
извините пожалуйста . а я правильно попала, на форум? то есть, это то место, где можно задавать разные интересующие тебя вопросы по теме и желающие! и знающие! могут ответить на эти вопросы, по мере возможности и знаний. или я ошибаюсь. здесь просто съезд учёных со всего мира, а я влезла со своими глупыми и дурными вопросами, а может здесь просто отдел сатиры и юмора. только не обижайтесь пожалуйста будьте добры. хорошо?!
Нет.
Задавать разные вопросы, как и на подавляющем большинстве других форумов, здесь не следует (разве что в разделе "Отвлеченные темы"). Вопросы следует задавать только по тематике форума.
Но следует понимать, что основное назначение форума - это общение по интересам, а не ответы на вопросы.
где можно задавать разные интересующие тебя вопросы по теме и желающие! и знающие! могут ответить на эти вопросы, по мере возможности и знаний. я не так написала в №58 ?
видимо не очень сильный мыслитель я. согласна. я учусь разбираюсь вникаю. вы тоже из одного места, не с дипломом программиста на свет появились.
инна, а вы за три года на форуме код вставлять в сообщения правильно не научились?
Коллеги, предлагаю на неверно оформленные сообщения больше не отвечать
Читать вы не умеете так же как и программировать:
Где здесь pgm_read_byte_far_far(pgm_get_far_far_address( ???
Я учился на ВТ (вычислительная техника) девушек было чуть ли не больше половины потока.
Из них только ОДНА пошла по стезе программирования после института !!! (и то я её код не видел, а во время учебы и она звезд с неба не хватала)
Мальчиков же программистов достаточно много.
На лабораторных ВСЕГДА в команде девушек были мальчики !!!
Так что девушкам шить варить ... ... ..., но не программировать и не паять !
Смысл поступления девушек на ВТ (как впрочем почти налюбую другую специальность) - выйти замуж. Ну а обучение помогает потом не сидеть полной дурой, когда муж рассказывает о работе :)
а в чем причина. все сделала как написано 18 файлов прописала как PROGMEM1= и 4 файла PROGMEM2= скомпилировалось без ошибок, но при загрузке в плату avrdude:stk500_getsync() attempt 1of 10 not in sync: resp=0xde сток таких от 1 до 10 и ошибка загрузки в плату.
ха-ха все поняли ваш юмор и посмеялись. я не обиделась. по этому я здесь и пришла к мальчикам умным и хорошим за помощью. потерпите девушку и если есть желание помогите ей глобус доделать что бы побольше картинок было . только и всего .
загрузчик стерли?
Причин может быть много. После того как установили MegaCore - были успешные загрузки ???
Порт правильно выбран ???
Начать с попытки загрузки простого скетча типа BLINK.
c 72 сообщением я сама разберусь. я нашла в чем у меня проблема. в настройках проблемка была. загрузилось без проблем
22 картинки появились ?
после внесения изменений, все картинки стали отображаться не правильно. я все таки думаю что вот это {SendRecSPI(pgm_read_byte_far(pgm_get_far_address(bild_11) + pointer + 1));} надо написать как то так {SendRecSPI(pgm_read_byte_far(pgm_get_far_address(bild_11 + pointer + 1)));} хотя на все 100% и не права.
после внесения изменений, все картинки стали отображаться не правильно. я все таки думаю что вот это {SendRecSPI(pgm_read_byte_far(pgm_get_far_address(bild_11) + pointer + 1));} надо написать как то так {SendRecSPI(pgm_read_byte_far(pgm_get_far_address(bild_11 + pointer + 1)));} хотя на все 100% и не права.
ну попробуйте, кто вам не дает-то?
Когда код научитесь вставлять правильно?
pgm_get_far_address(bild_11) + pointer + I
тут вычисляется адрес начала картинки и к нему добавляется смещение меридиана и светодиода
pgm_get_far_address(bild_11 + pointer + I)
тут я ХЗ что вычисляется !!!
(bild_11) + pointer + 1
последним знаком должна быть не ЕДИНИЧКА, а то что является счетчиком в FOR
I видимо
ВЫ МОЖЕТЕ СКОПИПАСТИТЬ ИЗ 56 СООБЩЕНИЯ ИЛИ НЕТ ??????????????????????????????????????????
"Д... Б..."
я заметил - когда женщина что-то не понимает - она просто считает, что это не важно...
Зато они крайне редко останавливаются, как мужики, уткнувшись в какую-то проблему, они их просто отбрасывают и идут дальше :))))
НИКОГДА не используйте заглавную I в программах где может быть I и 1 неверно распознаны глазами !!!
при таком написании ошибку выдает 22 строке . вот что пишет ivalue reguired as unary "&" operand если все строки исправить как как №77
НИКОГДА не используйте заглавную I в программах где может быть I и 1 неверно распознаны глазами !!!
добавлю - и еще маленькую l (L) и одинарное o которое легко перепутать с нулем
инна, а мужа у вас нет? мне кажется это задачка для него. Я имею в виду задачу - возиться с вами и обьяснять вам элементарные вещи...
... не надо скобки переставлять ...
ЕДИНИЧКИ + 1 замените на I + I
Муж сбежал наверное давно ... еще в 2018 ...
в самом исходнике написано pointer + 1, то есть считает с увеличением на единичку
мужа нет в 22 строке выдает ошибку пишет "I" was not declared in this scope не за декларирована "I"
в самом исходнике написано pointer + 1, то есть считает с увеличением на единичку
В 9 сообщении 200% + I
И по логике там английская большая И.
У вас сейчас каждый меридиан целиком одного цвета - верно ???
получается что включены все цвета включены одновременно и все засвечено белым цветом. и выход изображения белого цвета.
скетч из 9 сообщения рабочий ? Там + I ? (разуйте глаза-скопируйте в блокнот и измените размер шрифта)
скопируйте из 56 сообщения и вставьте
хватит делать нам мозги !!!
понятно, из кулинарного кружка тебя выгнали.
после всеобщего отравления
разбирая написанное в №51 ведь там написано что все что свыше 65535 будет нарушаться алгоритм . так может первые 18 картинок надо писать как в исходнике, а вот, то что становится свыше 65535 уже прописывать как вы указывали ведь первые 18 картинок укладываются в рамки 65535 . это мое чисто логическая думка не основанная на знаниях
Исправили на + I ??? (латинская заглавная И)
нет я писала, до 9 он не работает c "I" поэтому я писала pointer + 1 английский я умею различать
Скопировал из 9 го
for (int l=0; l<18; l++){SendRecSPI(pgm_read_byte_near(bild_01 + pointer + l));}
что по вашему тут происходит ?
l растет от 0 до 17 - выводятся 18 байт на меридиан
если l в конце заменить на 1, то 18 раз выведется один и тот же байт !!!
Это же просто кошмар какой-то! ;)))
Вместо
нужно поставить везде так:
и не нужно менять штатное ядро и так будет всё работать.
Да - в цикле "for" переменная цикла - "l" это не "и" и не "I" и не "1", это, ...ля, ЭЛЬ ЛАТИНСКАЯ!!!!!!!!!!!
=======================
ОФФТОП: напомню, мне -51 и женат я уже 31 год. Обсуждаем с женой покупку яхты для проведения старости в море. Вроде всё постепенно согласовывается. Жена замолкает на время... и выдаёт: "Нужно мне у Кати (её маникюрша) взять уроки как с машинкой работать, а то как я на лодке буду за ногтями ухаживать?" !!!!!!РУКА-ЛИЦО!!!!!! Бабе - шестой десяток, она думает не о том, как быть, если солярка в океане закончится в штиль, а о том, что с ноготками делать!!!! Дамы - отдельный вид животных, очень похожие на людей, но не люди - это я как большой специалист говорю!
А может это и ЭЛЬ маленькая
Вообщем надо что бы после + стояла та же буква что и в for !!!
Дамы - отдельный вид животных, очень похожие на людей, но не люди - это я как большой специалист говорю!
для начала - мне ровно столько же. сколько тебе. И я все больше прихожу к выводу. что то. что они - ИНЫЕ - это классно.