Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.52/33: Рейтинг темы: голосов - 33, средняя оценка - 4.52
omt
0 / 0 / 0
Регистрация: 02.11.2004
Сообщений: 1,112
1

работа с UART (IDE WinAVR)

19.01.2012, 12:05. Просмотров 6013. Ответов 8
Метки нет (Все метки)

предыстория:
есть мега88 с кварцем 20МГц (уж какой нашёл),
также есть код, сгенерённый CvAVR для работы с UART на прерываниях. (к слову, Eval версия отказывается генерить процедуры для UART).

вопросы:
- во-первых, кто-нибудь реально пользуется этим генерённым кодом?
- во-вторых, если да, то нужны ли все эти #pragma+ и #pragma- , на которые ругается avr-gcc из WinAVR?
-в третьих (И САМЫХ ГЛАВНЫХ) для чего нужна работа с UART именно на прерываниях? особенно в части отправки? а то вижу в интернетах разные примеры - и кто как, но в основном без прерываний.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2012, 12:05
Ответы с готовыми решениями:

Работа UART по прерыванию
Доброго времени суток, уважаемые форумчане! Я делаю систему контроля на Atmega16A-AU, котрая...

Работа с UART (ATMega328)
Всем привет. Сижу мучаю атмегу и понять не могу что не так. Мне надо сделать uart c ехом. Но это...

Работа с UART ATMega8
к примеру надо отправить число 21367 в ком порт с атмеги8 чтобы потом на компе программой считать....

Работа с FT232 UART
Такое вот дело, уж долгое время неполучается общение (FT232)UART с (MCU)UART. Думал проблема в...

Работа с UART ATMega8
Всем привет! Использую эту программу #include <mega8.h> #include <delay.h> #include <stdio.h> ...

8
Johmmy0007
1 / 1 / 0
Регистрация: 30.08.2011
Сообщений: 9,944
19.01.2012, 12:32 2
>>в третьих (И САМЫХ ГЛАВНЫХ) для чего нужна работа с UART именно на прерываниях?
совершенно не обязательно на отправке, на приёме - удобно, чтоб не гонять мк опрашивая постоянно uart
0
omt
0 / 0 / 0
Регистрация: 02.11.2004
Сообщений: 1,112
19.01.2012, 12:47 3
вот я так же думаю, но дай думаю спрошу у людей опытных

UPD: ещё прикол: в MFile как правильная маша указал тип контроллера ATmega88PA. а в хедерах (io.h) таковского нету. компилятор мне ругается, мол не знаю что за адрес прерывания ты мне указываешь, а я не могу понять - ведь <avr/interrupt.h> подключен ,чего ещё нужно?..
сменил тип на обычную мегу88, ошибки компилятора исчезли.

блин, как страшно жыть
0
Midyk88
0 / 0 / 0
Регистрация: 01.11.2010
Сообщений: 213
19.01.2012, 15:17 4
Цитата Сообщение от Omt
в третьих (И САМЫХ ГЛАВНЫХ) для чего нужна работа с UART именно на прерываниях? особенно в части отправки? а то вижу в интернетах разные примеры - и кто как, но в основном без прерываний.
я использую прерывание по опустошению UDR при отправке. Динные пихаю в кольцевой буфер. там дальше по прерываниям данные отправляются в УАРТ. Прерывание по завершении отправки можно использовать для выставления флага того, что все данные преданы. Могу дать код, но писал для себя и давно, поэтому местами стремно.
0
omt
0 / 0 / 0
Регистрация: 02.11.2004
Сообщений: 1,112
19.01.2012, 15:36 5
давай
пофигу что стремно, я и сам эстет тот ещё
0
Oxydi
0 / 0 / 0
Регистрация: 04.05.2010
Сообщений: 115
19.01.2012, 20:01 6
Цитата Сообщение от Omt
вопросы:
- во-первых, кто-нибудь реально пользуется этим генерённым кодом?
- во-вторых, если да, то нужны ли все эти #pragma+ и #pragma- , на которые ругается avr-gcc из WinAVR?
-в третьих (И САМЫХ ГЛАВНЫХ) для чего нужна работа с UART именно на прерываниях? особенно в части отправки? а то вижу в интернетах разные примеры - и кто как, но в основном без прерываний.
1) Не пользуюсь.
2) Описание директивы #pragma надо смотреть в доках на компилятор. Фиг знает зачем они тут. Есть, например вот такая директива #pragma once - служит для того, чтобы файлик подключался только один раз.
3) Когда касается передачи данных, тот тут лучше не медлить. Например, нужно подать срочно какую-нибудь команду на считывание важных данных и тут же получить ответ. Может у тебя в программе 50 задач и пока дойдет до функции опроса регистра UART может уйти время, а с ним и данные. Поэтому лучше ловить эти данные в прерывании.
Прерывание Tx может пригодится, например, тогда, когда передается пакет данных. Скажем, посылку в 10 байт (массив 10 ячеек) нужно передать от slave к mostirу, а передавать мы можем только по 8 бит. Вот и надо генерировать прерывание, чтобы делать подсчет переданных байт и т.п.
0
Midyk88
0 / 0 / 0
Регистрация: 01.11.2010
Сообщений: 213
20.01.2012, 02:20 7
вот прикрепил. в uart_buff.h настраивать.

Код
//#define UART_TRANSMIT         1
//#define UART_SEND_ARRAY_FUNC   1
#define UART_RECEIVE         1
если раскоментировано, то разрешаем передачу, прием, или добавляем функцию, которой можно слать в уарт массивы.
Нижем еще настраиваются размеры буферов и скорость. во со скоростью не гарантирую. Формулу выдрал у Дихалта, не вдумывался. И чтоб работало, где то должно быть задефайнено F_CPU.

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

[1.23 Кб]
0
s_btosk
0 / 0 / 0
Регистрация: 08.03.2011
Сообщений: 181
25.01.2012, 00:48 8
Статья, названная как и этот топик. Исходники тоже на WinAVR
0
itysiy
0 / 0 / 0
Регистрация: 18.01.2012
Сообщений: 1,418
25.01.2012, 17:43 9
Цитата Сообщение от s_btosk
Статья, названная как и этот топик. Исходники тоже на WinAVR
смотря под какую задачу, ибо там без прерываний, а УАРТ штука медленная
0
25.01.2012, 17:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2012, 17:43

Работа с UART в МК ATMega8
Не хочет работать передача данных. Подключаю к ножкам PD0 и PD1 через USB/UART TTL конвертор...

MSP430F5435A. Работа с UART
написал такую програмку для отправки по UART... эффекта нету, со стороны схемы всё норм, в чём...

Работа с UART (Си, ATtiny 2313)
Дорогие формчане и знатаки по микроконтролёрам я Новичок в этом деле. У меня есть вопрос, есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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