|
Проблема с приемом данных USART в ATtiny2313 |
|
|
|
Oct 29 2008, 09:28
|

Участник

Группа: Участник
Сообщений: 20
Регистрация: 28-10-08
Из: Москва
Пользователь №: 41 264

|
Помогите, плиз, разобраться с проблемой!
Спаял схему, в которой данные в МК должны поступать по протоколу Модбас через ADM1485. В CodeVisionAVR создаю проект, в котором настраиваю все параметры МК. Снизу часть сгенерированного текста, относящаяся к обработке прерывания:
// USART Receiver interrupt service routine interrupt [USART_RXC] void usart_rx_isr(void) { char status,data; status= UCSRA; data=UDR; if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0) ...
Все вроде бы собрано правильно, но МК не хочет воспринимать данные. Для проверки срабатывания прерывания я включил в текст строку:
// USART Receiver interrupt service routine interrupt [USART_RXC] void usart_rx_isr(void) { char status,data; status= UCSRA; data=UDR; PORTB.7=1; if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0) ...
После прихода на МК посылки, PORTB.7 меняет свое состояние, что говорит об срабатывании прерывания. Но если я включаю строчку после проверки if:
// USART Receiver interrupt service routine interrupt [USART_RXC] void usart_rx_isr(void) { char status,data; status= UCSRA; data=UDR; if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0) PORTB.7=1; ...
, то МК перестает реагировать на пакеты. Скорость передатчика и приемника выставлены одинаковыми. Я пробывал с разными скоростями. Пробывал и от внешнего кварца и от внутреннего генератора. Где-то я прочел, что в этом условии проверяется наличие аппаратной ошибки. Получается, что МК плохой? Или еще какая-то другая причина может быть?
|
|
|
|
|
 |
Ответов
|
Oct 30 2008, 10:13
|
Участник

Группа: Участник
Сообщений: 21
Регистрация: 2-12-04
Пользователь №: 1 296

|
GM может так? PORTB.7=~PINB.7
Попробуй включить передатчик тиньки (и драйвер 485 на передачу), постоянно что-нибудь передавать и смотреть компутером. Т.о. будет ясно правильно ли выставлена скорость.
|
|
|
|
|
Nov 1 2008, 18:28
|

Чайник, 1 литр
   
Группа: Свой
Сообщений: 655
Регистрация: 17-05-06
Из: Moscow
Пользователь №: 17 168

|
Цитата(IVANS @ Oct 30 2008, 13:13)  GM может так? PORTB.7=~PINB.7 Восстанавливаю (исчезла из-за падения форума) весьма полезную информацию от =GM= касательно особенностей упоминаемого в теме МК: "Writing a logic one to PINxn toggles the value of PORTxn, independent on the value of DDRxn."
Сообщение отредактировал SysRq - Nov 1 2008, 18:30
|
|
|
|
Сообщений в этой теме
Прораб счастья Проблема с приемом данных USART в ATtiny2313 Oct 29 2008, 09:28 Vladimir_J Доброе время суток !!!
1. После услови... Oct 29 2008, 09:39 Прораб счастья Скобка - { есть, просто здесь я ее забыл поставить... Oct 29 2008, 09:51 GDI Вы бы привели код полностью, чтоб никто не гадал, ... Oct 29 2008, 09:56 Прораб счастья Текст программы я не приводил, так как она мало от... Oct 29 2008, 10:11 =GM= Цитата(Прораб счастья @ Oct 29 2008, 10:1... Oct 29 2008, 12:09  SysRq Цитата(=GM= @ Oct 29 2008, 15:09) Для зап... Oct 29 2008, 12:52   =GM= Цитата(SysRq @ Oct 29 2008, 12:52) Цитиру... Oct 29 2008, 15:22    SysRq Цитата(=GM= @ Oct 29 2008, 18:22) Бит чёт... Oct 29 2008, 15:40  =GM= Цитата(Прораб счастья @ Oct 29 2008, 12:1... Oct 29 2008, 13:16 IVANS 1. Если данные передаются непрерывно, то задержка ... Oct 29 2008, 10:49 Прораб счастья Подключение А и В я неоднократно проверял.
Насчет ... Oct 29 2008, 11:19 Polaris Цитата(Прораб счастья @ Oct 29 2008, 13:1... Oct 29 2008, 11:48 SysRq Цитата(Прораб счастья @ Oct 29 2008, 14:1... Oct 29 2008, 11:52 defunct Цитата(Прораб счастья @ Oct 29 2008, 12:2... Oct 29 2008, 11:47 Прораб счастья defunct:
Спасибо! Сегодня посмотрю Oct 29 2008, 11:51 Прораб счастья Цитата(Polaris @ Oct 29 2008, 14:48) Прер... Oct 29 2008, 12:19 Прораб счастья Сегодня вечером заменю кварц на 7.3728МГц, проверю... Oct 29 2008, 13:30 Прораб счастья Я, в общем-то, знаю что я передаю
Посылка у меня ... Oct 30 2008, 07:30 =GM= Цитата(Прораб счастья @ Oct 30 2008, 07:3... Oct 30 2008, 10:01 SysRq Попробуйте отправить неразрывно два байта: [0xFF][... Oct 30 2008, 08:46
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|