У атмеги8 не работает, у аттини45 и атмеги 328 работает. Добавлено: Fri Mar 17, 2017 12:32 pm |
удалено модератором Добавлено: Fri Mar 17, 2017 4:16 pm |
Тан, ну хоть ты будь выше этого... Тебя подъебывают, а ты повелся... Добавлено: Fri Mar 17, 2017 4:35 pm |
TAN писал(а): Читай внимательнее, что удаляешь. Это я удалил. И этот пост тоже. Ещё одна попытка разжигания - будет бан немедленно. Добавлено: Fri Mar 17, 2017 5:54 pm |
Один вопрос по Ардуино, как переписать данные из ЕЕПРОМа (900 - 1000 Байт) во ФЛЕШ не создавая массива в РАМе. Добавлено: Fri Mar 17, 2017 6:06 pm |
насколько помнится selfprograming у атмелов через память, пишется в рам какойто кусок определенного размера, потом он скидывается во флеш. вроде как побайтно не дает, по крайней мере у мну не получалось. не целый кусок, а фрагментами. имхо гуглить avr self-programming examples C или ченить такое. а под ардуину или голый контроллер по сути нет разницы, С он и есть С Добавлено: Fri Mar 17, 2017 7:36 pm |
Если не путаю, через регистры заполняется страница данных для записи и пишется целиком, одной командой. Так что навскидку вроде ничего не мешает на ходу читать еепром и тут же заполнять страницу, потом её записывая. Добавлено: Fri Mar 17, 2017 7:42 pm |
Хорошо. У меня сейчас пишутся данные в ЕЕПРОМ, как достигает уставки 900 Байт, надо данные из ЕЕПРОМА перезаписать во ФЛЕШ. Как это сделать без РАМа, т.к. у РАМ нет свободных 900 Байт. Добавлено: Sun Mar 19, 2017 12:21 pm |
Ну так что мешает почитать дш на конкретный мк? Или хочется получить сразу готовый кусок кода? Добавлено: Sun Mar 19, 2017 12:29 pm |
Хотя возможно для данного случая, лучше не писать все 900 Байт одним куском, а разбить на кусочки по 100...300 Байт через промежуточный массив. Готовый код мне не нужен. А не понимаю как это сделать даже на уровне идеи в условиях ограниченного РАМа и минуя промежуточный массив. Ты предлагаешь это делать побайтно? Добавлено: Sun Mar 19, 2017 12:41 pm |
Странно, я вроде вполне ясно написал, как именно можно попробовать. В Меге128 (какая нужна -- озвучено не было, кстати) не требуется отдельный массив для программирования страницы. Просто данные загоняются через SPM-регистры во встроенный буфер страницы и потом дается команда записи этой самой страницы. Логично попробовать скомбинировать чтение двух байт из ЕЕПРОМа, запись их в буфер в цикле по размеру этой страницы и потом выполнением команды записи. Ну и перед этим стереть тоже было бы неплохо -- тоже делается довольно просто, без всяких буферов в памяти. Добавлено: Sun Mar 19, 2017 12:53 pm |
ATmega328P (na ARDUINO NANO v3.0) - буду пробовать через стандартные библиотеки ЕЕПРОМ и ПРОГМЕМ. Просто с регистрами - это не мой уровень (я не электронщик и не программист). Добавлено: Sun Mar 19, 2017 1:43 pm |
Как вариант -- поискать готовые решения на всяких сайтах типа Электроникса, Изи и подобных. Наверняка сходная задача кем-то уже решалась.
Добавлено: Sun Mar 19, 2017 1:47 pm |
HOBBY. Интересно, что то сделать такое чего не купить в магазине (интернете). Добавлено: Sun Mar 19, 2017 3:07 pm |
Тогда есть смысли и поглубже разобраться Добавлено: Sun Mar 19, 2017 3:07 pm |
блеа, обнаружил некий косяк в софте счетчиков. ну косяк не косяк, а место возможного отказа. питания мозга счетчика ведется через лапы контроллера, три лапы спаяны вместе и вместе же открываются\закрываются. но делают они это конструкцией вида PORTB|=(1<<0)||(1<<1)||(1<<2) что скорее всего вкомпиливается в три sbi, которые выполняются каждый в свой такт. а значит когда один порт уже high то два других еще low и так как они запаяны в кучу - должен протекать сквозняк. частота 1мгц и такт 1мкс конечно, но всеравно не комильфо. в тестовом образце иголок тока КЗ вроде не видно, но чето напрягся как думаете - похуй и сами себя они не спалят за 1мкс или требуется сервиспаки клиентам высылать :D тестовый наверное уже почти полгода пашет не кашляет, но мне то хочется наработки на отказ хотя бы лет десять. как вообще феты выходные у аврок, крепкие? ради прикола драйвил ими светодиоды без резиков. лапа сама своим телом гордо ограничивала ток где-то на 30мА, спалить не получалось, но все же. Добавлено: Sun Mar 19, 2017 10:34 pm |
Крепкие вроде. Во всяком случае я делал динамическую индикацию без всяких резиков от 5В. Теплая была слегка. Не думаю, что за 1мкс что-то выгорит. Скажность больше 1000? Добавлено: Sun Mar 19, 2017 10:42 pm |
А если писать что-то типа PORTB|=0b00000111? Добавлено: Sun Mar 19, 2017 10:43 pm |
Оно уже у клиентов, цимес в этом. Николай теперь параноит, что сломаются поделки. Добавлено: Sun Mar 19, 2017 10:43 pm |
Я как-то у атмеги2560 щупом коротнул ногу на землю, не сгорела Добавлено: Sun Mar 19, 2017 10:49 pm |
Николай писал(а): конструкцией вида PORTB|=(1<<0)||(1<<1)||(1<<2) что скорее всего вкомпиливается в три sbi, которые выполняются каждый в свой такт. Сильно сомнительно, что компилятор настолько тупой, что не проведет оптимизацию этого куска. Константа же в чистом виде. Добавлено: Sun Mar 19, 2017 10:49 pm |
Дык посмотреть асм код. Добавлено: Sun Mar 19, 2017 10:50 pm |
есть возможность переконфигурировать выключенное состояние в Z , в целях универсальности ручками можно любую лапу делать H, L, HZ или Z но для этого надо целый талмуд с настройками всем разослать и научить конфигить. что сущщий гемор. скважность получается порядка 3000000 :D сквозняк в момент переключения H->L потом 2мс потом L->H потом и почему он тупой. что так в три команды, что вычитываем состояние, накладываем байт, пишем обратно - тоже три команды. хотя если осцилом косяков\ в питалове не слышно - наверное и херасним. просто в голове компилю прошивку постоянно, на предмет поиска багов. я ша часы пишу в эту хреновину, и голова только прошивкой и забита, вот и вылазеют такие мысли Последний раз редактировалось: Николай (Sun Mar 19, 2017 10:56 pm), всего редактировалось 1 раз Добавлено: Sun Mar 19, 2017 10:51 pm |
Скомпилил такой код в кодВижн. void main(void) { DDRB |= 255; //нога PB0 выход PORTB |= 1<<PORTB0|1<<PORTB1|1<<PORTB2; } Получилось
Лол, выше ошибка была, вместо || написал |. Исправил
Добавлено: Sun Mar 19, 2017 10:55 pm |
Не понял, откуда три команды, когда одна -- SBI xx, 0x7 ? Добавлено: Sun Mar 19, 2017 10:58 pm |
Лицензионное соглашение (c)Flyback.org.ru Российское общество любителей высоких напряжений. Использование материалов с данного сайта и форума возможно только с разрешения администрации. |