| Автор |
Съобщение |
|
mash
Ранг: Новодошъл
Регистриран на: Пет Окт 27, 2006 6:23 pm Мнения: 162 Местоположение: Севлиево
|
Здравейте
за да не пускам нова тема да питам тък в тази.
Искам да ползвам този пик като ретранслатор по инфраред канал.
Схемно реализирах схемата и си работи добре. Обаче възниква един проблем на който не успях да намеря решение.
става въпрос за четенето на RX буфера.
simvol=getc(); \\прочитам
putc (simvol); \\ изпращам
Проблема е , че програмата си стои на getc(); докъто не дойде нещо в буфера.
Какво може да се направи за да минава от там само ако има нещо за четене ?
примерно
if(kbhit())
{
simvol=getc();
}
else simlol=' ' \\интервал
|
| Вто Юли 17, 2007 12:06 pm |
|
 |
|
VSU
Ранг: Напреднал
Регистриран на: Нед Авг 14, 2005 1:08 pm Мнения: 433 Местоположение: Казанлък
|
Няма ли флаг за приет символ прави проверка по него
|
| Вто Юли 17, 2007 1:57 pm |
|
 |
|
valioman
Ранг: Почетен член
Регистриран на: Съб Сеп 17, 2005 5:07 pm Мнения: 813 Местоположение: Сливен
|
[quote="mash"][/quote]
Ей това казва хелпа н CCS за KBHIT функцията
|
| Вто Юли 17, 2007 3:32 pm |
|
 |
|
mash
Ранг: Новодошъл
Регистриран на: Пет Окт 27, 2006 6:23 pm Мнения: 162 Местоположение: Севлиево
|
Абе то много хубаво ама нещо не мога да разбера как това може да ми свърши работа в моя случай ....
|
| Вто Юли 17, 2007 5:52 pm |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Колегата ти отговори....
Ще приемеш само ако има нещо за приемане...нали това искаш ?
|
| Вто Юли 17, 2007 8:38 pm |
|
 |
|
mash
Ранг: Новодошъл
Регистриран на: Пет Окт 27, 2006 6:23 pm Мнения: 162 Местоположение: Севлиево
|
while(!kbhit());
str1=getc();
while(!kbhit());
str2=getc();
while(!kbhit());
str3=getc();
Има, но не приема нищо...
след четенето в str1 str2 str3... strn няма нищо  А съм сигурен , че подавам 9 символа на RX.
|
| Сря Юли 18, 2007 12:01 am |
|
 |
|
VSU
Ранг: Напреднал
Регистриран на: Нед Авг 14, 2005 1:08 pm Мнения: 433 Местоположение: Казанлък
|
УЖАС ти не четеш ли какво пише бе
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.
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.
|
| Сря Юли 18, 2007 8:42 am |
|
 |
|
valioman
Ранг: Почетен член
Регистриран на: Съб Сеп 17, 2005 5:07 pm Мнения: 813 Местоположение: Сливен
|
[quote="mash"][/quote]
Така е като не се ползва хардуерен UART за да ползваш прекъсването му ..... има една малко тъпа реализация ама не знам дали ще проработи свястно..... задай за RX пин да ти е GP2 (5 krak ) на пикчето и виж неможеш ли да ползваш външното прекъсване като го настроиш съответно на кой фронт да ти реагира ..... може да намалиш скороста докато получиш свестен резултат .  а и може малко да си преработиш протокола ... но пробата му е майката ..... а и да питам на симулатор ли пробваш или реално ????
|
| Сря Юли 18, 2007 9:19 am |
|
 |
|
mash
Ранг: Новодошъл
Регистриран на: Пет Окт 27, 2006 6:23 pm Мнения: 162 Местоположение: Севлиево
|
VSU
 Явно не чета ....
Значи няма да стане.
Ще го направя с пик, който има хардуерен модул за комуникация.
Ейй , че ми се искаше да стане с този .....
|
| Сря Юли 18, 2007 12:49 pm |
|
 |
|
valioman
Ранг: Почетен член
Регистриран на: Съб Сеп 17, 2005 5:07 pm Мнения: 813 Местоположение: Сливен
|
ще стане и с този ама май малко те мързи  ) дано е от жегите 
|
| Сря Юли 18, 2007 1:15 pm |
|
 |
|
3aek
Ранг: Форумен бог
Регистриран на: Вто Яну 10, 2006 2:40 pm Мнения: 2258
|
www.olimex.com/dev/pic-p8.html виж отдолу има сорс и hex за малък PIC bit-bang RS232
|
| Сря Юли 18, 2007 4:40 pm |
|
|