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

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

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

Ответ
 
Опции темы Опции просмотра
Старый 21.11.2008, 18:41   #1
jobdead
Junior Member
 
Регистрация: 17.10.2008
Сообщений: 11
Вес репутации: 100/33
jobdead will become famous soon enoughjobdead will become famous soon enough
По умолчанию программный uart в mikroc

Всем привет.

В mikroC есть фкнкция инициализации программного uart, которая в качестве одного из параметров принимает скорость передачи данных.
При тестировании микроконтроллера pic12f675 через proteus, выяснилось, что скорость передачи данных отличается в 2 раза. Т.е. если параметр скорости равен 19200, на самом деле получается 9600. Кто-нибудь сталкивался с этим? Может глюк какой.

Спасибо.
jobdead вне форума   Ответить с цитированием
Старый 21.11.2008, 20:31   #2
masterzx
Senior Member
 
Аватар для masterzx
 
Регистрация: 21.09.2007
Адрес: Барнаул
Возраст: 31
Сообщений: 1,474
Вес репутации: 826/58
masterzx is a splendid one to beholdmasterzx is a splendid one to beholdmasterzx is a splendid one to beholdmasterzx is a splendid one to beholdmasterzx is a splendid one to beholdmasterzx is a splendid one to beholdmasterzx is a splendid one to behold
Отправить сообщение для masterzx с помощью ICQ
По умолчанию Ответ: программный uart в mikroc

А у тебя тактовые частоты совпадают
толькочто проверял в протеусе со скорстью проблем нет
__________________
Если проблему можно решить за деньги, то это не проблема, это расходы. Еврейская мудрость.
masterzx вне форума   Ответить с цитированием
Старый 21.11.2008, 22:16   #3
jobdead
Junior Member
 
Регистрация: 17.10.2008
Сообщений: 11
Вес репутации: 100/33
jobdead will become famous soon enoughjobdead will become famous soon enough
По умолчанию Ответ: программный uart в mikroc

Может я чего не того написал.Хм....Я имел ввиду библиотечный программный uart предусмотренный библиотекой mikroc. У меня работает все от встроенного в pic 4МГц генератора. Может я что-то , где-то не поставил.Вот код.
unsigned short ucData=0x11;
void main(void){
//---------------------------------config adc--------------------------
ADCON0=0x81;
ANSEL&=0x33;//GP0, GP1 - analog input
//-------------------------------config ports io------------------------
TRISIO=0x0B;//GP0, GP1, GP3 - inputs, GP2, GP4, GP5 - outputs
GPIO=0x00;
OPTION_REG&=0x7F;//enable pull up resistors
WPU|=0x34;//connecting pull up resistors on ports G2, G4, G5
//---------------------------------init soft uart------------------------
Soft_Uart_Init(GPIO, 3, 2, 19200, 0); //GP3 - rx, GP2 - tx
Soft_Uart_Write(ucData); // send code
В протеусе не 19200, а 9600 и по осцилу смотрел и по виртуальному терминалу.
Может, что еще...какой регистр надо подстроить.
Подскажите, пожалуйста.
jobdead вне форума   Ответить с цитированием
Старый 21.11.2008, 23:52   #4
masterzx
Senior Member
 
Аватар для masterzx
 
Регистрация: 21.09.2007
Адрес: Барнаул
Возраст: 31
Сообщений: 1,474
Вес репутации: 826/58
masterzx is a splendid one to beholdmasterzx is a splendid one to beholdmasterzx is a splendid one to beholdmasterzx is a splendid one to beholdmasterzx is a splendid one to beholdmasterzx is a splendid one to beholdmasterzx is a splendid one to behold
Отправить сообщение для masterzx с помощью ICQ
По умолчанию Ответ: программный uart в mikroc

посмотри чтоб в протеусе было 4мгц
и в микроси то же 4 мгц

P.S.: протеус почти не учитывает фьюзы и тактовая ставится отдельно
в микроси тактовая тоже указывается отдельно
P.S.
Миниатюры
tmp1.jpg  
__________________
Если проблему можно решить за деньги, то это не проблема, это расходы. Еврейская мудрость.

Последний раз редактировалось masterzx; 22.11.2008 в 01:10.
masterzx вне форума   Ответить с цитированием
Старый 22.11.2008, 11:42   #5
jobdead
Junior Member
 
Регистрация: 17.10.2008
Сообщений: 11
Вес репутации: 100/33
jobdead will become famous soon enoughjobdead will become famous soon enough
По умолчанию Ответ: программный uart в mikroc

Все получилось! Вообщем дело в том, что я в настройках конфигурационного слова микроС выбрал внутренний RC-генератор, а вот его частота осталась 8МГц, поставил 4МГц, как и полагается и все заработало.
Cпасибо masterzx.

jobdead вне форума   Ответить с цитированием
Старый 04.12.2008, 17:59   #6
Aleksis
Junior Member
 
Регистрация: 26.02.2008
Адрес: Минск, Беларусь
Возраст: 34
Сообщений: 11
Вес репутации: 100/36
Aleksis will become famous soon enoughAleksis will become famous soon enough
По умолчанию Ответ: программный uart в mikroc

Не хочу плодить новые темы, так что спрошу здесь. При использовании функции Soft_Uart_Init MicroC не хочет компилировать проект. В сообщениях пишет _InvertMaskWr: not found. Вот полный исходник:

unsigned short data;
unsigned short *rec;

void main() {
GPIO = 0xFF;
TRISIO = 0xFF;
Soft_Uart_Init(GPIO, 1, 2, 9600, 0);
do {
do {
data = Soft_Uart_Read(rec);
} while (!*rec);
if (data == 0x0FF) {
TRISIO.F0 = 0;
} else {
TRISIO.F0 = 1;
}
} while(1);
}


Контроллер 12F675. MicroC версии 6.2.1.0.

Подскажите, пожалуйста, в чем может быть дело.
Aleksis вне форума   Ответить с цитированием
Старый 05.12.2008, 10:53   #7
jobdead
Junior Member
 
Регистрация: 17.10.2008
Сообщений: 11
Вес репутации: 100/33
jobdead will become famous soon enoughjobdead will become famous soon enough
По умолчанию Ответ: программный uart в mikroc

Привет.
Попробуй также воспользоваться функцией Soft_Uart_Write(data). Все компилится. Сам пока не понял с чем это связано.
jobdead вне форума   Ответить с цитированием
Старый 05.12.2008, 11:17   #8
Aleksis
Junior Member
 
Регистрация: 26.02.2008
Адрес: Минск, Беларусь
Возраст: 34
Сообщений: 11
Вес репутации: 100/36
Aleksis will become famous soon enoughAleksis will become famous soon enough
По умолчанию Ответ: программный uart в mikroc

Спасибо. Помогло. Просто фантастика какая-то.
Aleksis вне форума   Ответить с цитированием
Старый 05.12.2008, 21:28   #9
petrd
Senior Member
 
Регистрация: 09.02.2008
Адрес: Воронеж
Возраст: 45
Сообщений: 1,643
Вес репутации: 1486/65
petrd has much to be proud ofpetrd has much to be proud ofpetrd has much to be proud ofpetrd has much to be proud ofpetrd has much to be proud ofpetrd has much to be proud ofpetrd has much to be proud ofpetrd has much to be proud ofpetrd has much to be proud ofpetrd has much to be proud of
Отправить сообщение для petrd с помощью ICQ
По умолчанию Ответ: программный uart в mikroc

Цитата:
Сообщение от jobdead Посмотреть сообщение
Привет.
Попробуй также воспользоваться функцией Soft_Uart_Write(data). Все компилится. Сам пока не понял с чем это связано.
Это связано с особенностями реализации библиотеки Soft_Uart в MikroC. Я так понял, что в Soft_Uart_Write и Soft_Uart_Read используется внутренняя переменная, которая используется обеими функциями, но объявляется она при вызове Soft_Uart_Write, поэтому прежде чем вызывать Soft_Uart_Read надо вызвать Soft_Uart_Write. Обещали исправить.
__________________
License MikroC, MikroC PRO and EasyPIC5 by mikroElektronika (the dead mikroICD replaced PICKit2 & PICKit3)
petrd вне форума   Ответить с цитированием
Ответ


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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по UART PIC24F basvic Продукция MICROCHIP 14 19.10.2008 13:25
В MikroC билиотечная функция: клавиатура 4*4 vgm1946 Продукция MICROCHIP 8 06.03.2008 15:27
mikroC PIC24 Alexey Belodvortsev Продукция MICROCHIP 3 10.02.2008 23:29
программный UART в microC alexaf Продукция MICROCHIP 4 28.12.2007 16:26
pic24hj64gp206: UART и OSCILLATOR, пару вопросов. Алексей Продукция MICROCHIP 1 14.04.2007 22:05


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


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