Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 21.04.2012, 09:05  
DK
Почётный гражданин KAZUS.RU
 
Аватар для DK
 
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,531
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
DK на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Что-то я торможу...
Программный UART. В цикле опрос. Первый пришедший символ теряется
Цитата:
while(true)
{
if(fgetc(portOut))
{
for(i = 0; i ‹ 10; i++)
aOUT[i] = fgetc(portOut);
...
...
}
...
...
...
}
Как его не потерять? К сожалению, протокол "с той стороны" не изменишь. Использовать железный порт МК и прерывание RDA тоже не получится (там свой порт висит).
Реклама:
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
DK вне форума  
Непрочитано 21.04.2012, 10:13  
demanik
Частый гость
 
Регистрация: 26.06.2006
Сообщений: 31
Сказал спасибо: 30
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
demanik на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Сообщение от DK Посмотреть сообщение
Использовать железный порт МК и прерывание RDA тоже не получится (там свой порт висит).
Как вариант взять пик с двумя усартами на борту.
demanik вне форума  
Непрочитано 21.04.2012, 10:15  
AJScorp
Почётный гражданин KAZUS.RU
 
Аватар для AJScorp
 
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
AJScorp на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Как-то так
Код:
while(true)
 {
 if((aOUT[0] = fgetc(portOut)) != EOF)
 {
 for(i = 1; i ‹ 10; i++)
 aOUT[i] = fgetc(portOut);
 ...
 ...
 }
 ...
 ...
 ...
 }
или через дополнительную переменную, если нельзя массив портить
Код:
char v;
...
while(true)
 {
 if((v = fgetc(portOut)) != EOF)
 {
 aOUT[0] = v;
 for(i = 1; i ‹ 10; i++)
 aOUT[i] = fgetc(portOut);
 ...
 ...
 }
 ...
 ...
 ...
 }
AJScorp вне форума  
Непрочитано 21.04.2012, 13:48  
DK
Почётный гражданин KAZUS.RU
 
Аватар для DK
 
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,531
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
DK на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Сообщение от AJScorp Посмотреть сообщение
Как-то так
Не хотит... Нету тут EOF - просто прилетает 10 байт. Причем, любых. Могут и все нули быть.
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
DK вне форума  
Непрочитано 21.04.2012, 14:01  
AJScorp
Почётный гражданин KAZUS.RU
 
Аватар для AJScorp
 
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
AJScorp на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Сообщение от DK Посмотреть сообщение
Не хотит... Нету тут EOF
Тогда ой! Я думал, Вы стандартную функцию используете.

Первый символ у Вас теряется вот тут if(fgetc(portOut)).

Сообщение от DK Посмотреть сообщение
Могут и все нули быть
Тогда вышеуказанное условие не сработает.

З.Ы. Если fgetc Вашей реализации, тогда описание в студию.

Последний раз редактировалось AJScorp; 21.04.2012 в 14:04.
AJScorp вне форума  
Непрочитано 21.04.2012, 16:44  
DK
Почётный гражданин KAZUS.RU
 
Аватар для DK
 
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,531
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
DK на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Да знаю я где теряется Просто раньше обходил посылкой какого-либо символа вперед. А тут не получится.
Стандартную. Реализация не моя. Родная от CCS. Посмотрел в STDIO - там тоже определения нет.
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
DK вне форума  
Непрочитано 21.04.2012, 17:06  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

DK,

Код:
 if(kbhit(portOut))
Цитата:
kbhit( )

--------------------------------------------------------------------------------
Syntax:
value = kbhit()
value = kbhit (stream)

Parameters:
stream is the stream id assigned to an available RS232 port. If the stream parameter is not included, the function uses the primary stream used by getc().

Returns:
0 (or FALSE) if getc() will need to wait for a character to come in, 1 (or TRUE) if a character is ready for getc()


Function:
If the RS232 is under software control this function returns TRUE if the start bit of a character is being sent on the RS232 RCV pin. If the RS232 is hardware this function returns TRUE if a character has been received and is waiting in the hardware buffer for getc() to read. This function may be used to poll for data without stopping and waiting for the data to appear. Note that in the case of software RS232 this function should be called at least 10 times the bit rate to ensure incoming data is not lost.
__________________
Осторожно , злой кот

Последний раз редактировалось dosikus; 21.04.2012 в 17:11.
dosikus вне форума  
Сказали "Спасибо" dosikus
DK (21.04.2012)
Непрочитано 21.04.2012, 18:44  
AJScorp
Почётный гражданин KAZUS.RU
 
Аватар для AJScorp
 
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
AJScorp на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Сообщение от DK Посмотреть сообщение
Стандартную. Реализация не моя. Родная от CCS.
Значит придется накатать свою функцию, которая будет возвращать ошибки другим образом, + kbhit, как посоветовал dosikus.
AJScorp вне форума  
Сказали "Спасибо" AJScorp
DK (21.04.2012)
Непрочитано 22.04.2012, 16:17  
DK
Почётный гражданин KAZUS.RU
 
Аватар для DK
 
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,531
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
DK на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

dosikus, AJScorp, все заработало!

Цитата:
if(kbhit(portOut))
{
tmp = 0;
for(i = 0; i ‹ 10; i++)
{
aOUT[i] = fgetc(portOut);
tmp += aOUT[i];
}
Вот так получилось.

Вот еще вопрос: можно ли отключить и включить собаку по ходу программы? Как я понял, в ПИК18 можно. А от в ПИК16?
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
DK вне форума  
Непрочитано 22.04.2012, 16:29  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Сообщение от DK Посмотреть сообщение
А от в ПИК16?
Ручками ... Надо на конкретный чип читать даташит.
В 16F887 WDTCON SWDTEN - при условии , что в конфиге он вырублен !
DK, не советую встроенными функциями увлекаться .
Всегда полезней написать свою , анализируя полученный асм встроенной.
__________________
Осторожно , злой кот

Последний раз редактировалось dosikus; 22.04.2012 в 16:42.
dosikus вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
i2c+ccs pic Gladkih Микроконтроллеры, АЦП, память и т.д 9 18.04.2016 22:17
PIC BASIC PRO Compiler 2.47 dosikus Proteus, KiCAD и другие ECAD 27 05.12.2009 05:48
изучение IAR AVR C compiler granel Микроконтроллеры, АЦП, память и т.д 0 10.10.2008 20:45
PIC C Compiler PCWH458 sergxxx Микроконтроллеры, АЦП, память и т.д 9 23.09.2008 18:25
Не включается дебаггер в CCS C Compiler BigMazzi Микроконтроллеры, АЦП, память и т.д 4 19.09.2008 13:34


Часовой пояс GMT +4, время: 13:23.


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