Список разделов Flyback.org.ru » не HV » Микроконтроллеры и всё, что с ними связано
Тему сейчас просматривают - зарегистрированных: 0, скрытых: 0 и гостей: 0
Зарегестрированные - Нет
Ответить с цитатой

Behram
 


У атмеги8 не работает, у аттини45 и атмеги 328 работает.

Добавлено: Fri Mar 17, 2017 12:32 pm
Ответить с цитатой

TAN
 


удалено модератором

Добавлено: Fri Mar 17, 2017 4:16 pm
Ответить с цитатой

perezx
 


Тан, ну хоть ты будь выше этого... Тебя подъебывают, а ты повелся...

Добавлено: Fri Mar 17, 2017 4:35 pm
Ответить с цитатой

Seriyvolk
Бездельник


TAN писал(а):
Читай внимательнее, что удаляешь.
Это я удалил. И этот пост тоже. Ещё одна попытка разжигания - будет бан немедленно.

Добавлено: Fri Mar 17, 2017 5:54 pm
Ответить с цитатой

CLON
 


Один вопрос по Ардуино, как переписать данные из ЕЕПРОМа (900 - 1000 Байт) во ФЛЕШ не создавая массива в РАМе.

Добавлено: Fri Mar 17, 2017 6:06 pm
Ответить с цитатой

Николай
 


насколько помнится selfprograming у атмелов через память, пишется в рам какойто кусок определенного размера, потом он скидывается во флеш. вроде как побайтно не дает, по крайней мере у мну не получалось.
не целый кусок, а фрагментами.

имхо гуглить avr self-programming examples C или ченить такое.
а под ардуину или голый контроллер по сути нет разницы, С он и есть С

Добавлено: Fri Mar 17, 2017 7:36 pm
Ответить с цитатой

SilverRay
 


Если не путаю, через регистры заполняется страница данных для записи и пишется целиком, одной командой. Так что навскидку вроде ничего не мешает на ходу читать еепром и тут же заполнять страницу, потом её записывая.

Добавлено: Fri Mar 17, 2017 7:42 pm
Ответить с цитатой

CLON
 


Хорошо. У меня сейчас пишутся данные в ЕЕПРОМ, как достигает уставки 900 Байт, надо данные из ЕЕПРОМА перезаписать во ФЛЕШ. Как это сделать без РАМа, т.к. у РАМ нет свободных 900 Байт.

Добавлено: Sun Mar 19, 2017 12:21 pm
Ответить с цитатой

SilverRay
 


Ну так что мешает почитать дш на конкретный мк? Или хочется получить сразу готовый кусок кода?

Добавлено: Sun Mar 19, 2017 12:29 pm
Ответить с цитатой

CLON
 


Хотя возможно для данного случая, лучше не писать все 900 Байт одним куском, а разбить на кусочки по 100...300 Байт через промежуточный массив.
Готовый код мне не нужен. А не понимаю как это сделать даже на уровне идеи в условиях ограниченного РАМа и минуя промежуточный массив.

Ты предлагаешь это делать побайтно?

Добавлено: Sun Mar 19, 2017 12:41 pm
Ответить с цитатой

SilverRay
 


Странно, я вроде вполне ясно написал, как именно можно попробовать.
В Меге128 (какая нужна -- озвучено не было, кстати) не требуется отдельный массив для программирования страницы. Просто данные загоняются через SPM-регистры во встроенный буфер страницы и потом дается команда записи этой самой страницы. Логично попробовать скомбинировать чтение двух байт из ЕЕПРОМа, запись их в буфер в цикле по размеру этой страницы и потом выполнением команды записи. Ну и перед этим стереть тоже было бы неплохо -- тоже делается довольно просто, без всяких буферов в памяти.

Добавлено: Sun Mar 19, 2017 12:53 pm
Ответить с цитатой

CLON
 


ATmega328P (na ARDUINO NANO v3.0) - буду пробовать через стандартные библиотеки ЕЕПРОМ и ПРОГМЕМ.

Просто с регистрами - это не мой уровень (я не электронщик и не программист). огорчён

Добавлено: Sun Mar 19, 2017 1:43 pm
Ответить с цитатой

SilverRay
 


Как вариант -- поискать готовые решения на всяких сайтах типа Электроникса, Изи и подобных. Наверняка сходная задача кем-то уже решалась.

Offtopic:
А можно спросить -- если не электронщик и не программист, зачем заниматься задачами, которые от тебя далеки?


Добавлено: Sun Mar 19, 2017 1:47 pm
Ответить с цитатой

CLON
 


HOBBY. Интересно, что то сделать такое чего не купить в магазине (интернете).

Добавлено: Sun Mar 19, 2017 3:07 pm
Ответить с цитатой

SilverRay
 


Тогда есть смысли и поглубже разобраться Smile

Добавлено: 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
Ответить с цитатой

TAN
 


Крепкие вроде. Во всяком случае я делал динамическую индикацию без всяких резиков от 5В. Теплая была слегка.

Не думаю, что за 1мкс что-то выгорит. Скажность больше 1000?

Добавлено: Sun Mar 19, 2017 10:42 pm
Ответить с цитатой

Behram
 


А если писать что-то типа PORTB|=0b00000111?

Добавлено: Sun Mar 19, 2017 10:43 pm
Ответить с цитатой

TAN
 


Оно уже у клиентов, цимес в этом. Николай теперь параноит, что сломаются поделки.

Добавлено: Sun Mar 19, 2017 10:43 pm
Ответить с цитатой

Behram
 


Я как-то у атмеги2560 щупом коротнул ногу на землю, не сгорела

Добавлено: Sun Mar 19, 2017 10:49 pm
Ответить с цитатой

SilverRay
 


Николай писал(а):
конструкцией вида PORTB|=(1<<0)||(1<<1)||(1<<2) что скорее всего вкомпиливается в три sbi, которые выполняются каждый в свой такт.
Сильно сомнительно, что компилятор настолько тупой, что не проведет оптимизацию этого куска. Константа же в чистом виде.

Добавлено: Sun Mar 19, 2017 10:49 pm
Ответить с цитатой

TAN
 


Дык посмотреть асм код.

Добавлено: 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
Ответить с цитатой

Behram
 


Скомпилил такой код в кодВижн.
void main(void)
{
DDRB |= 255; //нога PB0 выход
PORTB |= 1<<PORTB0|1<<PORTB1|1<<PORTB2;
}
Получилось
Код:

   .CSEG
_main:
; .FSTART _main
; 0000 0005 DDRB |= 255;
   IN   R30,0x17
   ORI  R30,LOW(0xFF)
   OUT  0x17,R30
; 0000 0006 PORTB |= 1<<PORTB0|1<<PORTB1|1<<PORTB2;
   IN   R30,0x18
   ORI  R30,LOW(0x7)
   OUT  0x18,R30
; 0000 0007 }
_0x3:
   RJMP _0x3
; .FEND



Лол, выше ошибка была, вместо || написал |. Исправил
Код:
   .CSEG
_main:
; .FSTART _main
; 0000 0005 DDRB |= 255; //нога PB0 выход
   IN   R30,0x17
   ORI  R30,LOW(0xFF)
   OUT  0x17,R30
; 0000 0006 PORTB |= 1<<PORTB0||1<<PORTB1||1<<PORTB2;
   IN   R30,0x18
   MOV  R26,R30
   LDI  R30,LOW(1)
   CPI  R30,0
   BRNE _0x3
   LDI  R30,LOW(2)
   CPI  R30,0
   BRNE _0x3
   LDI  R30,LOW(4)
   CPI  R30,0
   BRNE _0x3
   LDI  R30,0
   RJMP _0x4
_0x3:
   LDI  R30,1
_0x4:
   OR   R30,R26
   OUT  0x18,R30
; 0000 0007 }
_0x5:
   RJMP _0x5
; .FEND


Добавлено: Sun Mar 19, 2017 10:55 pm
Ответить с цитатой

SilverRay
 


Не понял, откуда три команды, когда одна -- SBI xx, 0x7 ?

Добавлено: Sun Mar 19, 2017 10:58 pm
Список разделов Flyback.org.ru » не HV » Микроконтроллеры и всё, что с ними связано
На страницу Пред.  1, 2, 3 ... 100, 101, 102 ... 151, 152, 153  След.     Просмотр темы целиком



Лицензионное соглашение

(c)Flyback.org.ru
Российское общество любителей высоких напряжений.
Использование материалов с данного сайта и форума возможно только с разрешения администрации.