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

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

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

Ответ
 
Опции темы Опции просмотра
Старый 21.11.2008, 18:41   #1
jobdead
Junior Member
 
Регистрация: 17.10.2008
Сообщений: 11
Вес репутации: 100/35
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
Адрес: Барнаул
Возраст: 32
Сообщений: 1,481
Вес репутации: 826/60
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/35
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
Адрес: Барнаул
Возраст: 32
Сообщений: 1,481
Вес репутации: 826/60
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/35
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
Адрес: Минск, Беларусь
Возраст: 35
Сообщений: 11
Вес репутации: 100/37
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/35
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
Адрес: Минск, Беларусь
Возраст: 35
Сообщений: 11
Вес репутации: 100/37
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
Адрес: Воронеж
Возраст: 46
Сообщений: 1,699
Вес репутации: 1677/68
petrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant future
Отправить сообщение для 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, время: 11:15.


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