Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Atmega AVR микроконтроллер как грамотно залочить кристал Mega32. http://www.cyberforum.ru/avr/thread2087670.html
Сабж. Есть устройство коммерческое. Как его грамотно залочить ? Устройство шьется клиентом по усб через ftdi. Делает это сам пользователь. Внутри загрузчик, который позволяет шить только определенную...
девайс хочет читать вес. Atmega AVR микроконтроллер
Есть устр-во на mego32. Надо научить читать вес. Как это делается "обычно" ? Не имел опыта, да и схем внятных не нашел. Подозреваю, что должен существовать ADC специализированный, ну или...
Atmega AVR микроконтроллер Как прописать побитовый доступ к портам?
Прости за мелкий вопрос, но не могу сообразить как сделать побитовое чтение порта... прошу помощи, с выводом все понятно, а вот с чтением не прокатывает тема типо PINA = 1<<4... всякая хрень типо...
Atmega AVR микроконтроллер Генератор тона (handshake tone) Что-то у меня затупчик вышел. Читаю доку на протокол, который нужно эмулировать в моей железке. · A burst of 1400 Hz. ±3% tone wyth a duration of 100 msec. ±5% · A pouse of 100 msec. ±5% · ... http://www.cyberforum.ru/avr/thread2087667.html
Atmega AVR микроконтроллер Не могу до конца одолеть AVR Dragon http://www.cyberforum.ru/avr/thread2087666.html
В общем на работу заказал 2 AVR Dragon, один там, один лично мне домой, но вот чёт победить его не получается.... подключаю к ISP разъёму....всё как обычно MISO, MOSI, SCK и т.д. если подрубаю к...
D type transparent latch(4 bit) Atmega AVR микроконтроллер
Осталось 4 ноги на МК. ими нужно управлять 6-ю каналами(выход). Напрашивается latch типа 74HC573. Но мне столько ног на 74... ке не нуно(да и не прокатит). . советы?
Atmega AVR микроконтроллер AVR Assembler. Метки и macro expansion
Пытаюсь написать ряд макросов для работы с циклическими буферами и запнулся об macro expansion. При разворачивании вот такого макроса (для определения буфера): .macro BUFFER .equ @0_MAX = @1...
Atmega AVR микроконтроллер Помогите разобраться с MIDI Подскажите пожалуйста как реализовать буфер из данной схемы и для чего он нужен? Собственно схема (MIDI OUT) https://ccrma.stanford.edu/~gary/controllers/midi.html Так же встретил в интернете вот... http://www.cyberforum.ru/avr/thread2087663.html
Atmega AVR микроконтроллер ИК дистанционное управление http://www.cyberforum.ru/avr/thread2087662.html
А можно выложить схему полностью: http://iosyitistromyss.ru/ik-distancion ... lenie.html Просто на печатке деталей больше, чем на схеме, а самому тяжело. Заранее спасибо
Atmega AVR микроконтроллер возможные проблемы с АЦП Здравствуйте! Через пару дней хочу начать разбираться с АЦП (МК Atmega16). С какими возможными трабламы я могу столкнутся? Почитав форум я понял, что работать с результатом надо в такой... http://www.cyberforum.ru/avr/thread2087661.html
dimyurk1978
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 3,047
18.07.2011, 15:15 0

Как не забыть инициализировать все, что инициализируется :)

18.07.2011, 15:15. Просмотров 3976. Ответов 6
Метки (Все метки)

Ответ

Цитата Сообщение от drvtos
Прикинь, сколько челов откроют твою тему, не имея ни малейшего понятия, как организовывать ключи для компиляции! Я - один из них :)

Ну, скажем, "Ключи компиляции бла-бла-бла"...
Я пользуюсь AVR-Studyo. В ней все ниженаписанное работает. Как это будет работать, и будет ли, в других компиляторах, не знаю.
Небольшой ликбез по директивам. Что такое директивы? Это такие штуки, которые очень сильно облегчают нам жизнь при написании программ.
Возьмем для примера макрос инициализации стека.
Код
.macro      INIT_STACK
.ifdef   SPH
ldi      r16,HIGH(ROMEND)
out      SPH,r16
.endif
ldi      r16,LOW(ROMEND)
out      SPL,r16
.endmacro
Этот макрос может кочевать из проекта в проект. И не нужно задумываться есть ли SPH у твоего кристалла или нет.
Идем дальше. Давным-давно написал свои библиотеки макросов, подпрограмм. Многое было разбито по тематике, по файлам. Например, SROM, EEPROM. Как-то раз заколебался забывать в очередной раз прописывать инклюды. Слил все в кучу. Как я теперь это все разгребаю?
Определил ключи. Пример моего шаблона:
Код
;=============== Функции и глобальные определения проекта ================
;-------------------------------------------------------------------------
#define NO   0
#define YES 1
;-------------------------------------------------------------------------

;-------------------------------------------------------------------------
#define TINY 0
#define MEGA 1
;-------------------------------------------------------------------------

;-------------------------------------------------------------------------
#define tab_h(x) HIGH(x), LOW(x)
#define tab_l(x) LOW(x), HIGH(x)
;-------------------------------------------------------------------------

;-------------------------------------------------------------------------
#define CPU_TYPE MEGA

#define EEPROM YES
;=========================================================================

#if (EEPROM==YES)
.macro Read_EEPROM
ldix   @0 ; Указатель адреса EEPROM.
ldiy   @1 ; Указатель адреса SROM.
ldi      CNT,@2 ; Количество байтов.
rcall   _Read_EEPROM
.endmacro
#endif
Объясняю сие творение. У мег расширенная система команд. И макросы написаны как для мег так и для тинек:
#if (CPU_TYPE==TINY)
multiply STREG,r16
#elif (CPU_TYPE==MEGA)
mul STREG,r16
#endif
Если мне требуется EEPROM в проекте, я ее и объявляю EEPROM YES. Не нужна EEPROM, ничего на нее не пишу. Потому как ключ NO=0. И не парюсь потом с инклюдированием, поиском, копированием файлов в свои проекты.
Ну, примерно, как-то так...

Вернуться к обсуждению:
Как не забыть инициализировать все, что инициализируется :)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.07.2011, 15:15

Как заставить Win8 забыть сеть ?
WIN 8 автоматически подключается не к той сетке , к которой нужно (у меня их две ) . ...

ububntu через windows, как забыть о грубе, или как будет лучше?
ребята, помогите! Вот какая штука у меня. Собираюсь ставить убунту вместе с семёркой. единственное,...

Переменная czBankNumber не инициализируется? вместо значений квадратики 2 шт и все
Инициализация находится в функции-члене void setBunkNumber(); #include &lt;iostream&gt; #include...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru