| Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
Программирование на Си в WinAVR
19.09.2007, 09:14
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,552
Сказал спасибо: 75
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
|
Сообщение от pirotehnick
|
|
Как мне снаружи записать в порт что-либо.
|
Входные сигналы в AVR
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
19.09.2007, 09:42
|
|
|
Прохожий
Регистрация: 30.05.2005
Сообщений: 7
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
|
Цитата:
|
Достаточно поменять
Код:
if (PORTB!=0xff)
на
Код:
if (PINB!=0xff)
и все заработает....
|
ага и порт спалить можно
-› PORTB=0xff; // настраиваем порт Б на вывод данных
[/quote][/code]
|
|
|
|
19.09.2007, 09:49
|
|
|
Прохожий
Регистрация: 29.06.2006
Сообщений: 6
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
 Большое спасибо за подсказку. А кто-нибудь знает где можно найти подробное описание всех регистров МК
серии Atmega на русском языке, желательно с примерами?
////////////////////////////////////////////////////
for AndreiVV:
‹‹1. сделали порт Б как выход ››
Да вроде наоборот, как вход. При установке бита регистра DDRx в "0"- вход, "1"- выход. Я руководствовался статьёй, взятой с сайта
http://myrobot.ru/
‹‹вы проверяете весь порт Б, все 8бит(чтобы выполнилось условие нужно будет все линии порта››
Как видно из условия "...if (PORTB!=0xff)... " достаточно изменить состояние одной линии порта B (т.е. сделать нулем), чтобы поставленное условие выполнилось.
‹‹слишком рано взялись за практику››
Да, наверное это так. Но осваивать теорию без практики не очень интересно. Программатор спаял, первую программу мигания светодиодом написал, бегующий огонёк сделал, хочется чего-то большего...
Сейчас я планирую пообщаться со встроенным АЦП и интерфейсом UART(RS232). Теоретический курс об этом я уже прочёл,вроде всё понял, теперь надо реализовать практически
P.S. Я кстате пользуюсь средой разработки WinAVR.
|
|
|
|
19.09.2007, 10:01
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 107 раз(а) в 66 сообщении(ях)
|
В приложении - описание 2313 на русском и пдф на 8 мегу- на родном английском. Архитектуры похожи, так что можно разобраться. Осторожно, файл больше 2 мегабайт.
Прикрепленный файл: 250759.rar
|
|
|
|
19.09.2007, 10:21
|
|
|
Гражданин KAZUS.RUN
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
|
|
Сообщение от pirotehnick
|
Большое спасибо за подсказку. А кто-нибудь знает где можно найти подробное описание всех регистров МК
серии Atmega на русском языке, желательно с примерами?
|
http://www.gaw.ru/html.cgi/txt/doc/m...h128/index.htm
|
|
|
|
19.09.2007, 11:43
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
|
|
Сообщение от vitalik9
|
ага и порт спалить можно
-› PORTB=0xff; // настраиваем порт Б на вывод данных
|
Вы не правы. DDRx- регистр определяющий вход/выход, не PORTx. RTFM!
|
|
|
|
19.09.2007, 13:00
|
|
|
Гражданин KAZUS.RUN
Регистрация: 29.06.2006
Сообщений: 638
Сказал спасибо: 37
Сказали Спасибо 56 раз(а) в 41 сообщении(ях)
|
|
Цитата:
|
for AndreiVV:
‹‹1. сделали порт Б как выход ››
Да вроде наоборот, как вход. При установке бита регистра DDRx в "0"- вход, "1"- выход. Я
|
прошу прощения, я особо не вдавался в подробности регистров(тоже начинающий) и пользовался визардом (CodeVisionAvr) если нужно было. Вот и сейчас тоже визардом, даже не заметил что строки DDRB и PORTB наоборот идут  посмотрел только результат и сделал поспешные выводы
|
|
|
|
02.10.2008, 11:28
|
|
|
Прохожий
Регистрация: 18.09.2008
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Добрый день
Я очень начинающий и поэтому убедительно прошу конкретный ответ на следующую проблему.
Пользуюсь Atmega16, WinAvr И Avrstudio и пытаюсь имитировать прием данных череез прерывание.
К примеру (написанной программы под рукой нет):
SIGNAL(__vector_default)
{
PORTB = UDR //просто вывести число
}
int main (void)
DDRB = / порт на выход
UBRRH/L //скорость
UCSRC// и так далее, настроены порты на прием, все проверенно не только мной и неоднократно.
UCSRA = 0
UCSRB = //
sei ()
while (1)
И суть проблемы.
После компиляции я открываю студию, прохожу все этапы записи в регистры (проверяю) и дальше он уходит в бесконечный цикл.
Далее, собственноручно, устанавливаю какое ни будь число в UDR, флаг RXC в UCSRA. Как будто ко мне пришло какое-то число. кажется по такому принципу и выставляется флаг прерывания.
ДЕбагер уходит на обработку прерывания (где SIGNAL) но в порт уже ни чего не идет, число с UDR пропадает сразу, еще один шаг оно полежит в r24, и потом теряется.
В чем причина. ПРобовали по разному. Переменные, указатели. Регистры подключить не получислось. НО не думаю что и это поможет.
ПОлучается лишь тогда, когда данные в UDR, выставляються в момент, непосредственной передачи в порт.
Заранее благодарю.
P.S. В железе тоже не работает. ЧТО-то ловит, а что непонятно.
|
|
|
|
08.03.2010, 16:29
|
|
|
Прохожий
Регистрация: 12.04.2008
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Программирование на Си в WinAVR.
Посмотри примерчик на http://proavr.narod.ru/z5.htm
по аналогии придумаешь.
|
|
|
|
08.03.2010, 16:55
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,552
Сказал спасибо: 75
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
Re: Программирование на Си в WinAVR.
и в PROTEUS ! это "ближе к телу".
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 15:32.
|
|