[image]

Курс: программирование AVR - часть IV

 
1 2 3 4 5 6 7 12
RU termostat #02.10.2004 20:16
+
-
edit
 

termostat

аксакал

Это продолжение, уже 4-я часть! предыдущая 3-я чсть, стр. 20:
Форумы Авиабазы

Самое начало: 1-я страница 1-й части:
Курс: программирование МК AVR "с нуля"

Если вы хотите почитать предыдущие 3 части этой
темы воспользуйтесь линкми "Версия для печати"

part 1: Форумы Авиабазы

part 2: Форумы Авиабазы

part 3: Форумы Авиабазы

Советую это сделать, обсуждалось много интересных
вопросов - пригодится.
Да и не нужно будет спрашивать по-новой!


"Курс AVR с нуля" - avr123.nm.ru одним файлом для офф-лайн чтения

avr123.nm.ru.rar (358 кБ обновлен 16 окт. 2004) - линк "avrnews" на стр. 4 курса.

Качайте, читайте, программируйте что вам нужно.


примеры программ на Си для AVR из пакета CV, для ознакомления (28 кБ): Форумы Авиабазы


Хороший компилятор Си для AVR -
ImageCraft Embedded Systems C Development Tools




скачивайте наздоровье:
ICCAVR DEMO VERSION (будет работать без ограничений 45 дней!)


Проверить работу вашего устройства, не покупая копонентов и без пайки,
можно с помощью - софт эмулятора AVR - VMLAB от AmcTools.com


Как работать с этими программами и с чего начать я
рассказываю на страничках курса: avr123.nm.ru
и помогают более опытные товарищи.

Если ВСЕ прочитано, и есть вопросы, задавайте!

Если есть идеи - делитесь, предлагайте!

   
Это сообщение редактировалось 17.10.2004 в 02:22
+
-
edit
 

Serge77

модератор

Почему же только на Си? Мы и на Аcсемблере учимся ;^))
   
RU termostat #02.10.2004 20:56
+
-
edit
 

termostat

аксакал

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

CodeVision AVR - новую версию выложил добрый человек с украины:
h--p://telesys.ru/wwwboards/mcontrol/809/messages/114413.shtml

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\


andre > Сегодня праздник!
Сегодня я запустил свой проц (АТмега169), подключил светодиодики и помигал ими. До чего прикольно, просто жуть!
 


Поздравляю! в нашем полку прибыло.
   
Это сообщение редактировалось 13.10.2004 в 15:08

Yuran

опытный

Serge77>Почему же только на Си? Мы и на Аcсемблере учимся ;^))[»]

Присоединяюсь =)
Переименуем тему в более широкую. На чём удобно на том и программим =))
:D
   
+
-
edit
 

Serge77

модератор

Вроде кто-то собирался нарисовать схему сопряжения TTL и RS-232.
Можно это ускорить, мне уже паять нужно.
   
RU Андрей Суворов #03.10.2004 22:36  @Serge77#03.10.2004 22:20
+
-
edit
 

Андрей Суворов

координатор

Serge77>Вроде кто-то собирался нарисовать схему сопряжения TTL и RS-232.
Serge77>Можно это ускорить, мне уже паять нужно.[»]

Берите, пользуйтесь. VCC - это питание схемы контроллера. Оно может быть 5, а может и 3.3, работает нормально. Все резисторы, кроме крайнего левого в схеме, 4,7 кОм...10 кОм. Крайний левый - 100 кОм.

Конденсатор электролитический, 4,7 мкФ...10 мкФ на 16..25 вольт, плюсом вниз. Можно поставить керамику 2,2 мкФ, тоже должно работать. Диод любой кремниевый быстродействующий. Годятся Д220, КД503, КД521, КД522, аналогичные буржуйские...
Схема проверялась на скоростях от 1200 до 38400. На полудуплексе гарантированно работает на любой скорости, на дуплексе за пределами этого диапазона - без гарантии.
Прикреплённые файлы:
rs232.GIF (скачать) [400x300, 3 кБ]
 
 
   
Это сообщение редактировалось 03.10.2004 в 22:44
+
-
edit
 

Serge77

модератор

Спасибо за схему. Можешь подсказать, какие транзисторы и диод в SMD подойдут? К сожалению, для меня слово "аналоги" ничего не значит, мне нужны точные данные.
   
RU Андрей Суворов #03.10.2004 23:25  @Serge77#03.10.2004 23:09
+
-
edit
 

Андрей Суворов

координатор

Serge77>Спасибо за схему. Можешь подсказать, какие транзисторы и диод в SMD подойдут? К сожалению, для меня слово "аналоги" ничего не значит, мне нужны точные данные.[»]

транзисторы... любые... Лишь бы структура подходила, но точных циферок я не помню... Например - КТ3102 и КТ3107 с любыми буквами. Но они не для поверхностного монтажа... А диод - 1N4148. он есть и в SOD80, и в MELF. и в корпусе с выводами...

Завтра посмотрю в инете.
   
RU termostat #04.10.2004 00:54
+
-
edit
 

termostat

аксакал

Serge77>Вроде кто-то собирался нарисовать схему сопряжения TTL и RS-232.
Serge77>Можно это ускорить, мне уже паять нужно.
 



29.09.2004 в прошлой части топика сообщал: Схема в ДШ на микросхему MAX232

а на транзисторах в АпликейшНоуте AVR910: http://www.atmel.com/dyn/products/app_notes.asp?family_id=607

Другие апликухи тоже посмотри там куча схем, что и как подключать к AVR'ам. Они должны быть на CD-ROM'e.

в AVR910 нарисован и разъем к КОМ порту ПК.
   

ser

новичок
Подскажите кто нибудь как в Imagecraft использовать 4-х битный LCD
   
+
-
edit
 

farm_b

новичок
Просьба ногами сильно не бить… - ну начинающий я…
Делаю регулятор нагрузки с управлением по ИК (RC5) на Atmega8535(CodeVision) 12 МГц . Вопрос : как побайтно записать код в переменную типа «static unsigned int» ?
P.S. Код длинной 15 бит. Принцип простой – два таймера, одно прерывание. Первый таймер управляет симистором, второй запускается от прерывания по приходу кода RC5.
Ранее я уже делал приемник, только на Bascom-AVR – там все проще : Command.kol_bit = Input_ir и все, а вот с CV не могу разобраться…
Пытаюсь делать так (скажите как правильно ???):
ir_code_temp |= (1<<kol_rc5);
или так :
((char*)&ir_code_temp)[kol_rc5] = 1;
, где kol_rc5 – счетчик кол-ва бит кода.
Ну как-то криво работает… срабатывают сразу несколько кнопок… Проблема или в записи битов, или в настройке таймера…цифрового осциллографа нет :((((( таймер методом научного тыка рассчитал :
#define INIT_TIMER2 TCNT2=122L-xtal/8L/256L (как правильно рассчитать такую конструкцию ???)
И еще вопрос – я пользуюсь VMLAB, но там нет меги8535 можно ли использовать 90S8535 для эмуляции ? И можно ли как-нибудь заставить VMLAB генерировать код RC5 ?
Прикреплённые файлы:
Lamp.htm (скачать) [4,6 кБ]
 
Lamp.htm (скачать) [4,6 кБ]
 
 
   
+
-
edit
 

farm_b

новичок
Просьба ногами сильно не бить… - ну начинающий я…
Делаю регулятор нагрузки с управлением по ИК (RC5) на Atmega8535(CodeVision) 12 МГц . Вопрос : как побайтно записать код в переменную типа «static unsigned int» ?
P.S. Код длинной 15 бит. Принцип простой – два таймера, одно прерывание. Первый таймер управляет симистором, второй запускается от прерывания по приходу кода RC5.
Ранее я уже делал приемник, только на Bascom-AVR – там все проще : Command.kol_bit = Input_ir и все, а вот с CV не могу разобраться…
Пытаюсь делать так (скажите как правильно ???):
ir_code_temp |= (1<<kol_rc5);
или так :
((char*)&ir_code_temp)[kol_rc5] = 1;
, где kol_rc5 – счетчик кол-ва бит кода.
Ну как-то криво работает… срабатывают сразу несколько кнопок… Проблема или в записи битов, или в настройке таймера…цифрового осциллографа нет (((( таймер методом научного тыка рассчитал :
#define INIT_TIMER2 TCNT2=122L-xtal/8L/256L (как правильно рассчитать такую конструкцию ???)
И еще вопрос – я пользуюсь VMLAB, но там нет меги8535 можно ли использовать 90S8535 для эмуляции ? И можно ли как-нибудь заставить VMLAB генерировать код RC5 ?
Прикреплённые файлы:
Lamp.htm (скачать) [4,6 кБ]
 
 
   
RU termostat #04.10.2004 12:12
+
-
edit
 

termostat

аксакал

ser>Подскажите кто нибудь как в Imagecraft использовать 4-х битный LCD
 


Дык! А примеры в дирректории компилятора кто будет смотреть?
папка: examples.avr\AVRKit2
там файлик: LCD4BIT.C - название кричащее!
   
RU termostat #04.10.2004 12:15
+
-
edit
 

termostat

аксакал

farm_b> Просьба ногами сильно не бить… - ну начинающий я…
 


Здесь как раз место для начинающих, я тоже такой.

farm_b> как побайтно записать код в переменную типа «static unsigned int» ?
 


Ты по мылу вроде побитно спрашивал? я ответил.
напиши конкретно что на входе и куда это поместить нужно.

по RC5 (для тех кто не в курсе - это формат передчи данных пультами
ДУ бытовой техники) посмотри:

AVR410 RC5 IR Remote Control Receiver
AVR415 RC5 IR Remote Control Transmitter

http://www.atmel.com/dyn/products/app_notes.asp?family_id=607

там схемы, принцип и алгоритмы есть.

farm_b> Ранее я уже делал приемник на Bascom-AVR – там все проще :

Command.kol_bit = Input_ir

а вот с CV не могу разобраться…
 


Дак почему не делаешь весь проект на БАСКОМе? На нем очень серьезные проекты делают - куча таких в АпликешнНоутах БАСКОМа.

farm_b> цифрового осциллографа нет :(((((
 


В этом ты не одинок.
Слава богу (или amctools.com) он есть в VMLAB - используй.

farm_b> таймер методом научного тыка рассчитал
 


в CV есть визад - генератор начального кода, воспользуйся
и считать не нужно.

farm_b> VMLAB нет меги8535 можно ли использовать 90S8535 для эмуляции
 


Чуть выше я сообщал, что Мега имеет особенности - посмотри по ссылке выше.

farm_b> И можно ли как-нибудь заставить VMLAB генерировать код RC5
 


С помощью генератора цифровых последовательностей VMLAB может "изображать" любой цифровой и аналоговый (ШИМ + RC фильтр) сигнал, а увидеть резeльтат можно в окне SCOPE.

\\\\\\\\\\\\\\\\\\\\

Хорошоб кто написал програмульку преобразующую произвольный сигнал (например .вау) в текстовый файл генератора цифровых последовательностей VMLAB - можно было бы обрабатывать на AVR реальные сигналы захваченые звуковой картой ПК.
   
RU Андрей Суворов #04.10.2004 12:35
+
-
edit
 

Андрей Суворов

координатор

termostat>
Serge77>Вроде кто-то собирался нарисовать схему сопряжения TTL и RS-232.
Serge77>>Можно это ускорить, мне уже паять нужно.
 

termostat>29.09.2004 в прошлой части топика сообщал: Схема в ДШ на микросхему MAX232
termostat>а на транзисторах в АпликейшНоуте AVR910: http://www.atmel.com/dyn/products/app_notes.asp?family_id=607
termostat>Другие апликухи тоже посмотри там куча схем, что и как подключать к AVR'ам. Они должны быть на CD-ROM'e.
termostat>в AVR910 нарисован и разъем к КОМ порту ПК.

Да, я с неё и сдирал. В моей сэкономлен один диод ценой изменения номинала одного резистора. Работоспособность проверена.
   
+
-
edit
 

Serge77

модератор

Нашёл такие схемы преобразователя:



Вопрос: +5 и земля, которые на схемах, берутся из СОМ-порта или из схемы с контроллером?
   
RU Андрей Суворов #04.10.2004 13:42  @Serge77#04.10.2004 13:32
+
-
edit
 

Андрей Суворов

координатор

Serge77>Нашёл такие схемы преобразователя:
Serge77>http://chaokhun.kmitl.ac.th/~kswichit/MAX232/MAX232.htm
Serge77>Вопрос: +5 и земля, которые на схемах, берутся из СОМ-порта или из схемы с контроллером?[»]

Из схемы с контроллером. На ком-порте нет такого напряжения. Если хочешь питать от компа, его можно снять с разъема джойстика/МИДИ на звуковухе. Там разъем DB-15
   

Yuran

опытный

Serge77>>Вопрос: +5 и земля, которые на схемах, берутся из СОМ-порта или из схемы с контроллером?[»]
А.С.>Из схемы с контроллером. На ком-порте нет такого напряжения. Если хочешь питать от компа, его можно снять с разъема джойстика/МИДИ на звуковухе. Там разъем DB-15[»]

Либо с USB порта =) до 500 ма, если других девайсов не навешено.
C Com порта можно вывести но гиморно, и зависит от того какие биты выставлены в порту на ногах, да и тока мало дать они могут к сожалению.

а USB рулит от него даже подогреватель для кофе питают =))
Мой программатор от него запитывается B)
   
RU Серокой #04.10.2004 13:48
+
-
edit
 

Серокой

координатор
★★★★
А.С.>Из схемы с контроллером. На ком-порте нет такого напряжения.
Зато там есть +12. У меня самопальный шнурок к телефону так работает - от уровней.
   
RU termostat #04.10.2004 14:45
+
-
edit
 

termostat

аксакал

использовать 4-х битный LCD
 


LCD управление 3-мя ножками МК - проект 141 на AVRfreaks.net

и

LCD + 2 светодиода - опять же управление 3-мя ножками МК - схема в
Motorola AN1979 "Altimeter and Barometer" (ссылки есть в топике БРЭО)
   
RU dimitry II #04.10.2004 19:15
+
-
edit
 

dimitry II

новичок
так я опять по поводу lcd модуля,

я кампилировал и симулировал и прого exempl и прогу termostat всё компилется всё симулируется вот только на практике не работает.
   
+
-
edit
 
<<<<termostat>Ты по мылу вроде побитно спрашивал? я ответил.

Все правилно я спрашивал... вот только по логике две индентичные конструкции:
ir_code_temp |= (1<<kol_rc5);
((char*)&ir_code_temp)[kol_rc5] = 1;
,а работает по разному... вот и спрашиваю - как правильно ?

<<<<termostat>напиши конкретно что на входе и куда это поместить нужно.

Принимаю сигнал на PD2(int2) c приемника TSOP1736. Пропускаю первые 1,5 бита, а потом ч/з каждые 880 us считываю 13 оставшихся с PINd.2

<<<<termostat>Дак почему не делаешь весь проект на БАСКОМе? На нем очень серьезные проекты делают - куча таких в АпликешнНоутах БАСКОМа.

Я согласен - мощная штука (БАСКОМ), но одно меня просто убило - программа, которая счас на СИ 2,5 кб, на БАСКОМ - 6,7 кб >>> !!! (но если честно, я с BASCOM даже в хелп не лазил - все по примерам... и работало !).

<<<<termostat>в CV есть визад - генератор начального кода, воспользуйся
termostat>и считать не нужно.

Ага есть точно, вот только как там задать чтоб таймер каждые 880us срабатывал ??? ... там только вроде частота предделения выставляется...

<<<<termostat>С помощью генератора цифровых последовательностей VMLAB может "изображать" любой цифровой и аналоговый (ШИМ + RC фильтр) сигнал, а увидеть резeльтат можно в окне SCOPE.

Можно ну хоть маленький пример переменного сигнала (вроде +5v2ms 0v1ms 5v3vs)...
 
RU termostat #05.10.2004 11:32
+
-
edit
 

termostat

аксакал

d.I.> так я опять по поводу lcd модуля,
d.I.> я кампилировал и симулировал и прого exempl и прогу termostat всё компилется всё симулируется вот только на практике не работает.
 


Стоп! Стоп! так народ подумает, что я не проверенные данные распространяю!

Я НЕ делал ни какой проги для LCD!

Я только дал наводки где посмотреть, но уверен что примеры из CV и ICC точно работают. Тем более что они работают в независимом от компиляторов VMLAB'е. Можно вывести в окно SCOPE сигналы на ножках LCD и проверить соответсвуют ли они тем что нужны для LCD. Если да то что-то с LCD не в порядке.

Не работает как? Если вообще ни чего не показывает, то возможно не подключено напряжение контраста. Кстати LCD может быть и не исправным.
   
RU termostat #05.10.2004 11:32
+
-
edit
 

termostat

аксакал

farm_b > Можно пример сигнала вроде +5v2ms 0v1ms 5v3vs ...
 


посмотри в Хэлпе VMLAB: "Interactive NRZ digital pattern generator"
для всех - это мощнейше средство отладки!

Дает возможность "изобразить любой аналоговый (методом ШИМ) или цифровой сигнал! и подать его на нужный узел эмулируемой схемы.

Пример: (кто с англ. дружит сам разберется)

по просьбе сигнал (вроде +5v2ms 0v1ms 5v3ms)... - определяем минимальный шаг - сдесь 1 мс. Шаг записываем в скобки:

P0 NRZ(1m) PD2 KEY_1 "110111"

1 - это 5 вольт, а точнее - напряжение питания!
0 - это 0 вольт
X - это полвина питания - 2,5 вольт

вот и получается "11" - это 2 милиСек 5 вольт, затем "0" это 1 мСек 0 вольт, и еще "111" - это 3 мСек 5 вольт.

Эта последовательность подается на ножку PD2 МК при нажатии кнопки "KEY_1" в "Контрол Панел"

P0 - это просто порядковый номер последовательности

Последовательность может быть ЛЮБОЙ длины - например:

10001111010011xxx11xxx1
+1010100x0x0xx11xx знак + соединяет строки

Последоваетльность может быть записана в текстовом файле: имя.txt - удобно для длинных.

Пример:

P1 NRZ(1u) PB2 KEY_3 "file:имя.txt"

Последоваетльность записаная в файле "имя.txt" будет подана на ножку PB2
при нажатии кнопки KEY_3.

Частота изменения уровней в Хелпе не указана, я пробовал 100 наноСекунд, работает. в примере выше 1 мкрС.

Вот сделать бы прогу чтоб .wav файл преобразовать в такую последовательность. реальные сигналы можно было бы обрабатывать в МК.
   
RU termostat #05.10.2004 12:04
+
-
edit
 

termostat

аксакал


farm_b > по логике две индентичные конструкции, ...
а работает по разному... как правильно ?
 


Если работает по разному то наверно логика разная всеже,
а правильно так как получается нужный тебе результат.

farm_b > Принимаю сигнал на PD2(int2) c приемника TSOP1736.
Пропускаю первые 1,5 бита, а потом ч/з каждые 880 us
считываю 13 оставшихся с PINd.2
 


Принцип такой например:

ir_code_temp = 0; // все биты стали нулями
ctr = 2; // первая позиция для записи 1-го принятого бита

- определили начало посылки
- пауза 1320 мкС

while (ctr < 15)
{
if(PINd.2) // если на PINd.2 - "1"
ir_code_temp |= (1<<ctr); // делаем соотв. бит - "1"

ctr++;

пауза 880 мкС; // пауза условна, на самом деле все по прерываниям таймера
}; // и while не применяется.


Еще: для повышения помехоустойчивости "железный" UART МК тестирует
каждый бит не 1, а 3 раза - можно и тебе так сделать.

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

farm_b > мощная штука (БАСКОМ), но программа
на СИ 2,5 кб, на БАСКОМ - 6,7 кб >>> !!!
 


а ICC еще раза в полтора компатнее код дает, а IAR еще меньше!

Кстати та можешь откомпилить кусочек приема RC5 из БАСКОМа
и посмотреть листинг на ассемблере.

а можно Телесистемы - миниатюрные аудио и видео устройства спросить и быстро получить провереный кусочек-исходник на Си.

farm_b > я с BASCOM даже в хелп не лазил - все по примерам... и работало !).
 


Ну дак! Бэйсик он и в африке бэйсик :-)))


farm_b > как в CV задать чтоб таймер каждые 880us срабатывал ???
 


Не могу сказать, нужно прогу инсталировать :-( но уверен что не сложно.

Можно в моем курсе задачу 03 посмотреть - там есть по настройке таймера.

   
1 2 3 4 5 6 7 12

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru