Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
Не все символы проходят через USART Tinny 2313
Отправлено
Indepth
25 апреля 2008 г. 10:42
Кусок кода;
void ReadPort()
{
unsigned long b1,b2,b3;
char recive;
if (rx_counter>0)
{
recive = getchar();
if (recive >79) {
switch (recive)
{
case 80:
stop=0;
SetDirection(1);
SetEnable(0);
intervalSet();
break;
case 81:
stop=0;
SetDirection(0);
SetEnable(0);
intervalSet();
break;
case 82:
stop=1;
direction = 0;
SetEnable(0);
break;
-----
case 80: - срабатывает при подаче chr(80)
case 81: и case 82: -нет
при подаче chr(81) и 82 соответсвенно
---
скорость обмена 19200
Chip type : ATtiny2313
Clock frequency : 7.372000 MHz
Memory model : Tiny
External SRAM size : 0
Data Stack size : 32
--
среда разработки
CodeVisionAvr 1.25.7
Составить ответ
|
Вернуться на конференцию
Ответы
Ответ:
—
Indepth
(25.04.2008 15:11:13
87.245.178.183
, 146 байт)
Тем не менее ошибки приема обязательно надо сбрасывать -->
—
MBedder
(25.04.2008 15:19:28
80.92.96.19
,
пустое
,
ссылка
)
Ответ:
—
Indepth
(25.04.2008 14:59:16
87.245.178.183
, 193 байт)
Запомни - ни один симулятор не умеет 100% корректно симулировать периферию. Пользуйся реальным терминалом для отладки
—
MBedder
(25.04.2008 15:21:24
80.92.96.19
,
пустое
)
UBRR = ?
—
nestandart
(25.04.2008 11:00:58
87.180.25.174
,
пустое
)
Ответ:
—
Indepth
(25.04.2008 12:07:12
87.245.178.183
, 165 байт)
А зачем разрешать прерывания от RXC, раз они не задействованы? Поставь для начала UCSRB=0x18, а после getchar() обнуляй все возможные флаги статуса и ошибок - UCSRA=0x00. И еще - непонятно, кто и как рулит rx_counter'ом и откуда он вообще взялся
—
MBedder
(25.04.2008 13:47:2
80.92.96.19
,
пустое
)
Ответ:
—
Indepth
(25.04.2008 14:34:34
87.245.178.183
, 486 байт)
А если status & (... ) не равен нулю, кто эти ошибки будет сбрасывать - Пушкин? Добавь после внешнего if строку UCSRA = 0;, как я говорил выше, иначе после первой же ошибки дальнейший прием ты пропустишь
—
MBedder
(25.04.2008 15:18:11
80.92.96.19
,
пустое
)
А также UCSR. А вообще очень похоже что порт запрограммирован на с контролем четности
—
Elektronik
(25.04.2008 11:05:32
194.85.99.225
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
вычтите два из трёх, получится:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru