реклама на сайте
подробности

 
 
> Небольшой проект на AVR, помогите разобраться новичку
Viper
сообщение Feb 14 2007, 14:05
Сообщение #1





Группа: Новичок
Сообщений: 2
Регистрация: 14-02-07
Из: Волт №13
Пользователь №: 25 348



Доброго времени суток, уважаемые форумчане!

Ранее я занимался изготовлением в основном аналоговых устройств, работающих со звуком(усилители, гитарные примочки и т.п.), поэтому опыт есть. Совсем недавно заинтересовался устройствами на микроконтроллерах фирмы Atmel. Успешно повторил несколько простых устройств на основе этих микропроцессоров. И соответственно захотелось разработать собственное устройство. Но, проблема в том, что с программированием у меня туго. В связи с чем и обращаюсь к вам за помощью.

Идея проста - управлять с компьютера в реальном времени через микроконтроллер вкл/выкл светодиода. Для этих целей планируется использовать atmega8, порт USB, протокол RS-232(т.е. использовать виртуальный COM порт), всё должно питаться соответственно от USB.
Собственно с реализацией аппаратной части проблем нет, но вот прошивку и программу я сам написать не могу sad.gif
Может есть люди, которые помогут разобраться и обьяснить принципы работы с портами, микроконтроллером, желательно из среды Borland c++.

Если это уже обсуждалось на форуме - пните ссылкой, поиск юзал, ничего подходящего не нашёл.
Если есть инфа по работе с портами из-под Borland c++(желательно на русском), буду очень благодарен за ссылку.

Если что - моё мыло в профиле.

Заранее спасибо.


--------------------
War...war never change...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 11)
dimka76
сообщение Feb 14 2007, 15:30
Сообщение #2


developer
****

Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032



Цитата(Viper @ Feb 14 2007, 14:05) *
Доброго времени суток, уважаемые форумчане!

Ранее я занимался изготовлением в основном аналоговых устройств, работающих со звуком(усилители, гитарные примочки и т.п.), поэтому опыт есть. Совсем недавно заинтересовался устройствами на микроконтроллерах фирмы Atmel. Успешно повторил несколько простых устройств на основе этих микропроцессоров. И соответственно захотелось разработать собственное устройство. Но, проблема в том, что с программированием у меня туго. В связи с чем и обращаюсь к вам за помощью.

Идея проста - управлять с компьютера в реальном времени через микроконтроллер вкл/выкл светодиода. Для этих целей планируется использовать atmega8, порт USB, протокол RS-232(т.е. использовать виртуальный COM порт), всё должно питаться соответственно от USB.
Собственно с реализацией аппаратной части проблем нет, но вот прошивку и программу я сам написать не могу sad.gif
Может есть люди, которые помогут разобраться и обьяснить принципы работы с портами, микроконтроллером, желательно из среды Borland c++.

Если это уже обсуждалось на форуме - пните ссылкой, поиск юзал, ничего подходящего не нашёл.
Если есть инфа по работе с портами из-под Borland c++(желательно на русском), буду очень благодарен за ссылку.

Если что - моё мыло в профиле.

Заранее спасибо.


На Borland c++ программы для микроконтроллеров не пишут.
Для этого есть специалисированные компиляторы.
WinAVR - бесплатный
IAR, KEIL, CodeVisionAVR, ImageCraft.
Доку по авр посмотри на www.atmel.com, www.atmel.ru
Есть раздел в этом форуме, посвященный AVR. Сходи туда.


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post
Wraven
сообщение Feb 14 2007, 17:03
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 31
Регистрация: 31-01-07
Из: Москва
Пользователь №: 24 890



Цитата(Viper @ Feb 14 2007, 14:05) *
Идея проста - управлять с компьютера в реальном времени...



Таже самая ситуация, хотел разобраться с микроконтроллерами, но знакомый с большим стажем в этом деле сказал - оно те нафиг нужно... писать программы для контроллеров на прямую с учетом того что они чуть ли не каждый год меняются это уже прошлый век. Посоветовал сразу развернуть свои стопа в сторону MIPS т.е на сколько я понимаю самодостаточный процессор в который можно грузануть линух и уже от этого плясать, согласитесь на много интересней. Вот теперь собираю информацию по этому направлению smile.gif


--------------------
Улыбайтесь чаще - это так всех раздражает!
Go to the top of the page
 
+Quote Post
gormih
сообщение Feb 15 2007, 00:56
Сообщение #4


nofb
***

Группа: Свой
Сообщений: 430
Регистрация: 18-05-06
Из: Москва, Зеленоград
Пользователь №: 17 218



Скажу по секрету, светодиодом с компа можно управлять использовав всего один транзистор в ключевом режиме :-) Микроконтроллер здесь совершенно ни к чему!

Возьмите простенькую библиотеку для работы скажем с LPT портом, есть огромное число экземплов в сети, на всех известных языках - delphi, visual basic, C++

Подключите ключ (лучше всего полевик) к одному из выводов DATA LPT порта, и передергивая соответствующий бит из простенькой проги - управляйте сколько влезет :-)


--------------------
Это не то что вы подумали ...

Go to the top of the page
 
+Quote Post
Screw
сообщение Feb 15 2007, 07:35
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 149
Регистрация: 29-11-06
Из: Барнаул
Пользователь №: 22 916



Цитата(gormih @ Feb 15 2007, 00:56) *
Скажу по секрету, светодиодом с компа можно управлять использовав всего один транзистор в ключевом режиме :-) Микроконтроллер здесь совершенно ни к чему!

Возьмите простенькую библиотеку для работы скажем с LPT портом, есть огромное число экземплов в сети, на всех известных языках - delphi, visual basic, C++

Подключите ключ (лучше всего полевик) к одному из выводов DATA LPT порта, и передергивая соответствующий бит из простенькой проги - управляйте сколько влезет :-)


Видимо человек хочет поработать с усартом, а не оптимизировать задачу....

Есть такая книжка: Агуров П. "практика программирования USB" 2006 г.
Дак вот, там все это изложено в доступной форме. Погуглите, думаю найдете
Go to the top of the page
 
+Quote Post
Viper
сообщение Feb 15 2007, 18:53
Сообщение #6





Группа: Новичок
Сообщений: 2
Регистрация: 14-02-07
Из: Волт №13
Пользователь №: 25 348



Цитата
На Borland c++ программы для микроконтроллеров не пишут.

На Borland c++ мне надо написать праграмму для компа, а не для контроллера.
Цитата
хотел разобраться с микроконтроллерами, но знакомый с большим стажем в этом деле сказал - оно те нафиг нужно... писать программы для контроллеров на прямую с учетом того что они чуть ли не каждый год меняются это уже прошлый век. Посоветовал сразу развернуть свои стопа в сторону MIPS т.е на сколько я понимаю самодостаточный процессор в который можно грузануть линух и уже от этого плясать, согласитесь на много интересней

Интереснее то оно интереснее, только вот дорого и на порядок сложнее. Очень порадовала фраза "самодостаточный процессор" =)
Цитата
Скажу по секрету, светодиодом с компа можно управлять использовав всего один транзистор в ключевом режиме

Чесно говоря не понял, зачем нужен транзистор, если можно напрямую к лпт подключить и из проги управлять.
Цитата
Видимо человек хочет поработать с усартом, а не оптимизировать задачу....

Ну хоть кто-то меня понял, мне эта простая схема нужна с целью изучить аспекты управления девайсом с компа. А управлять то я буду не светодиодом, а намного более сложными вещами.
Цитата
Есть такая книжка: Агуров П. "практика программирования USB" 2006 г.

За книгу огромное СПАСИБО, хоть я не собирался работать с юсб, но прочитав решил передумать =)


--------------------
War...war never change...
Go to the top of the page
 
+Quote Post
VXDRV
сообщение Feb 15 2007, 22:48
Сообщение #7


Участник
*

Группа: Свой
Сообщений: 67
Регистрация: 5-02-07
Пользователь №: 25 074



По моему книга Агурова немного не по теме. USB - отдельная песня.
Есть книги по AVR - у нас в Караганде даже такие есть в политехе и даже по ATMega там про ассемблер чего-то было (комманды точно) где б их в электронке взять (PIC-ами занимаюсь но и всторону AVR одним глазом посматриваю). Посмотрю автора если интересно и напишу. А ещё в электронке по С есть чего-то - по AVR.

Сообщение отредактировал VXDRV - Feb 15 2007, 22:54
Go to the top of the page
 
+Quote Post
birden
сообщение Feb 16 2007, 07:47
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 28-10-06
Из: Новосибирск
Пользователь №: 21 743



Добавлю свои 5 капель:

Пример программы на С (IAR) для работы с UART:

#include <iom8.h>

#define Led_on() PORTC |= 0x01 // включение светодиода
#define Led_off() PORTC &= ~0x01 // выключение светодиода

// Отправка байта
//
void rs_out(unsigned char byte) {
while ( !( UCSRA & (1<<UDRE)) );
UDR = byte;
}
// Прием байта
//
unsigned char rs_in(void) {
while ( !(UCSRA & (1<<RXC));
return UDR;
}
// Основная программа
//
void main(void) {
unsigned char d;
// инициализация портов
DDRC = 0x01; PORTC = 0x00; // PC0 - выход
DDRD = 0x02; PORTD = 0x00; // RXD - вход, TXD выход

// инициализация UART
UBRRH = 0;
UBRRL = 51; // скорость 9600 бод для кварца 8МГц
USCRB = (1<<RXEN)|(1<<TXEN); // разрешаем прием и передачу
UCSRC = (1<<URSEL)|(3<<UCSZ0);

// Цикл приема отправки
while(1) {
d = rs_in(); // Принимаем байт
rs_out(~d); // инвертируем и отправляем (для наглядности)
if (d == 0x10) Led_on(); // пришло 0x10 - зажигаем
if (d == 0x20) Led_off(); // пришло 0x20 - гасим
}
}

Писал по памяти, но должно работать. Если что-то не так, сообщите, будем править smile.gif

Схемотехника:
- на PC.0 контроллера вешаем светодиод ч/з резистор 560 Ом на землю
- ноги PD.0, PD.1 (RXD и TXD) ч/з преобразователь уровней TTL-RS-232 (типа AD202) к компьютеру
- кварц 8МГц (можно internal RC-osc с той же частотой)

На копьютере удобно использовать программу типа ComPortToolkit (кажется так) для отправки и приема байтов.
Ну и удачи конечно же. Вопросы - обращайтесь.
Go to the top of the page
 
+Quote Post
upc2
сообщение Feb 16 2007, 11:39
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063



<<Чесно говоря не понял, зачем нужен транзистор, если можно напрямую к лпт подключить и из проги управлять>>

Сожгете порт.Выходной ток LPT около 2 mA. Номинальный ток светодиода (тех, которые под рукой валяются ) около 10mA.
Go to the top of the page
 
+Quote Post
vova8211
сообщение Mar 10 2007, 03:03
Сообщение #10





Группа: Новичок
Сообщений: 2
Регистрация: 9-03-07
Пользователь №: 26 010



ого. ну и понаписали тута.

1. единственное что по теме - это программа для меги8. smile.gif

2. контроллер centronics далеко не 2ма выдает (и не такое вешали).
3. Книгу по юсб человеку не надо - он прямо сказал, что будет использовать виртуальный ком-порт.
4. MIPS это аббривеатура выполнения миллионов инструкций за секунду. и отношения к "самодостаточным" процам не имеет. скорее имелось в виду ARM (если линух вешать).

а теперь отсебятины:
в гугле ищешь компонент для ком-порта для с++. (обычно имеет название: ComPort, ComPort32, CPDrv, Comm32 и т.д.). Обычно также включают в себя демо-прогу.) Устанавливаешь компонент, запускаешь эту демо-прогу (с настройками разберешся). все, пихаешь в мегу прогу birdena и вперед.
Настройки - одинаковые для проца и компа битрейты, стоповые биты, четность... и такое остальное.

НО! если это первое в жизни знакомство с контроллерами - то это слишком резкая нагрузка. smile.gif
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Mar 10 2007, 09:57
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(vova8211 @ Mar 10 2007, 04:03) *
НО! если это первое в жизни знакомство с контроллерами - то это слишком резкая нагрузка. smile.gif


Согласен. Для начала нужно упростить задачу - научить светодиод, подключенный к микроконтроллеру, просто моргать. Это будет хорошим тестом. Тогда время, необходимое для подключенного таинственного прибора MIPS под LINUX будет равно этому времени, умноженному на 100-200. Если уйдет неделя на моргание, то получится два-четыре года. С учетом того что в институте учат 5 лет, вполне реально, если девушками не увлекаться.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
L00b6
сообщение Mar 12 2007, 00:54
Сообщение #12


Участник
*

Группа: Новичок
Сообщений: 59
Регистрация: 11-03-07
Пользователь №: 26 057



Раз начинающий, то прямая дорога в интернет, идея тут не с светодиоде , как , многие поняли... идея именно научится АВРки програмить и с компа управлять... Dog Pawlowa правильно сказал, для начали посто запрограмь на моргание, а подключить АВРку к компу через LPT COM а сейчас и USB не составляет труда, схем куча , как любительских как и проффффф.. И еще если человек собрался сразу и АВР и C++ к нему изучать, то это только респект и уважуха, посмотрим может мы еще будем ему программы заказывать!!!
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 02:54
Рейтинг@Mail.ru


Страница сгенерированна за 0.01446 секунд с 7
ELECTRONIX ©2004-2016