Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Продукция MICROCHIP

Продукция MICROCHIP Технические вопросы по всей продукции Microchip

Ответ
 
Опции темы Опции просмотра
Старый 24.12.2007, 14:46   #1
alexaf
Junior Member
 
Регистрация: 23.12.2007
Возраст: 33
Сообщений: 20
Вес репутации: 100/38
alexaf will become famous soon enoughalexaf will become famous soon enough
По умолчанию программный UART в microC

Здравствуйте. Не могу разобраться с библиотекой программного UART в microC (версия 6.2.1.0). Пробовал контроллеры PIC16F628 (4 МГц) и PIC16F877 (20 МГц). Обвес для RS232 собран по схеме из примера microC для хардверного UART. Преобразователь уровней MAX232CPE. Конденсаторы 1 мкФ. Подключаю Rx Tx от MAX232 на хардверный UART контроллеров, беру простую программу-эхо из примера microC для аппаратного USART

[code]
unsigned short i;
void main() {
// Initialize USART module (8 bit, 2400 baud rate, no parity bit..)Usart_Init(2400); do { if (Usart_Data_Ready()) { // If data is received i = Usart_Read(); // Read the received data Usart_Write(i); // Send data via USART } } while (1);}
[code]

все работает замечательно! Подключаю Rx Tx от MAX232 к выводам 0 и 1 PORTA PIC16F628 (4 МГц). Беру простую программу-эхо из примера для библиотеки программного UART microC.

[code]
unsigned short data = 0, ro = 0;
unsigned short *rec;void main() { rec = &ro;

TRISA = 0x02; //00000010

// Инициализация (8 бит, 2400 бод, без паритета..)
Soft_Uart_Init(PORTA, 1, 0, 2400, 0); do {
do {
data = Soft_Uart_Read(rec); // Прием данных
} while (!*rec); Soft_Uart_Write(data); // Отправка данных назад по UART
} while (1);}
[code]

используя эту программу в разных вариациях я не могу ничего получить от компьютера. Зато могу спокойно отсылать данные, т.е Soft_Uart_Write() отдельно работает исправно. Какие-то проблемы с Soft_Uart_Read(). данные на ножку PIC от MAX232 приходят. Но в программе я похоже не выхожу из цикла while чтения, т.к. эхо не получаю. кто пользуется microC, может что посоветуете? P.s. аналогичная ситуация с PIC16F877 (20 МГц), использую PORTB, ноги 3,4.
alexaf вне форума   Ответить с цитированием
Старый 24.12.2007, 14:59   #2
Sergey
Senior Member
 
Регистрация: 25.02.2007
Адрес: СПб
Сообщений: 609
Вес репутации: 670/52
Sergey is a splendid one to beholdSergey is a splendid one to beholdSergey is a splendid one to beholdSergey is a splendid one to beholdSergey is a splendid one to beholdSergey is a splendid one to behold
Отправить сообщение для Sergey с помощью ICQ
По умолчанию Re: программный UART в microC

Вроде там ошибка скорости была... для работы на 19200 приходилось ставить 21000 помоему... По крайней мере я так делал и тогда связь была устойчивая. Работал с Сименсом С35...
Sergey вне форума   Ответить с цитированием
Старый 25.12.2007, 09:56   #3
alexaf
Junior Member
 
Регистрация: 23.12.2007
Возраст: 33
Сообщений: 20
Вес репутации: 100/38
alexaf will become famous soon enoughalexaf will become famous soon enough
По умолчанию Re: программный UART в microC

Цитата:
Сообщение от Sergey Посмотреть сообщение
Вроде там ошибка скорости была... для работы на 19200 приходилось ставить 21000 помоему... По крайней мере я так делал и тогда связь была устойчивая. Работал с Сименсом С35...
Поставил скорость 21000 при инициализации программного UART в microC. В терминале установил 19200. есть эхо. Но данные идут не те. Видимо, надо поточнее подобрать скорость? С каким примерно шагом стоит делать подбор?
alexaf вне форума   Ответить с цитированием
Старый 25.12.2007, 10:13   #4
Sergey
Senior Member
 
Регистрация: 25.02.2007
Адрес: СПб
Сообщений: 609
Вес репутации: 670/52
Sergey is a splendid one to beholdSergey is a splendid one to beholdSergey is a splendid one to beholdSergey is a splendid one to beholdSergey is a splendid one to beholdSergey is a splendid one to behold
Отправить сообщение для Sergey с помощью ICQ
По умолчанию Re: программный UART в microC

думаю с шагом 100 можно... я когда игрался начинал с 1000 потом уточнял...
Sergey вне форума   Ответить с цитированием
Старый 28.12.2007, 16:26   #5
alexaf
Junior Member
 
Регистрация: 23.12.2007
Возраст: 33
Сообщений: 20
Вес репутации: 100/38
alexaf will become famous soon enoughalexaf will become famous soon enough
По умолчанию Re: программный UART в microC

На компьютере, как оказалось, у меня стояла версия microC 5.0.х.х. Как я в ней не подбирал скорость, было только 2 варианта: либо нет эха, либо при выводе получаем совсем не то что ожидали. Вчера скомпилировал в microC 6.2.x.x со скоростью 21000 и все заработало Спасибо!
alexaf вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос знатокам microC и CCS-PICC. tester Общетехнические вопросы 1 18.08.2008 15:44
Проблемы с прерываниями от UART PIC24HJ128GP510. ROGALIK Продукция MICROCHIP 12 06.08.2008 23:01
Подскажите с UART на PIC16F876A Machine slave Продукция MICROCHIP 16 25.02.2008 20:06
Одновременно UART и I2C Dolphin Продукция MICROCHIP 1 06.01.2008 11:09
pic24hj64gp206: UART и OSCILLATOR, пару вопросов. Алексей Продукция MICROCHIP 1 14.04.2007 22:05


Часовой пояс GMT +3, время: 11:21.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd. Перевод: zCarot