Možnost přijetí na Seriovem portu jen byte 0-127

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
michalino
Příspěvky: 348
Registrován: 03 srp 2009, 02:00

Možnost přijetí na Seriovem portu jen byte 0-127

#1 Příspěvek od michalino »

Dobrý den všem a hezký nový rok,

prosím Vás o radu.

Odešlu na seriový port ATMELU znak BYTE například příkazem
serialport.Write(Chr(127))
Chr tedy může bez problémů nabývat hodnot 0 až 127
Vše je v pořádku, získám takovou hodnotu 0- 127 na Atmelu

ale

když odešlu chr v rozmezí 128 až 256
nedostanu v Atmelu nic....

přitom jsem si dříve s tímto hrál a dostal jsem hodnotu určitě v rozmezí celého byte 0-256 v pořádku....

čím by to prosím mohlo být?
děkuji

hakamusai
Příspěvky: 943
Registrován: 17 dub 2007, 02:00

#2 Příspěvek od hakamusai »

Tak tohle je dotaz pro člověka s věšteckou koulí.Připomíná mi to dotaz typu -nejede mi auto ,proč ? :D

Uživatelský avatar
michalino
Příspěvky: 348
Registrován: 03 srp 2009, 02:00

#3 Příspěvek od michalino »

Tomu rozumím Hakamusai, proč tak píšeš, já myslel, že bude problém někde v obecném, známém problému, protože když vše funguje pro 0-127 tak mě nenapadá při správných deklaracích, které jsem kontroloval X krát, kde jindy by to mohlo být...

je rozdíl v příjetí byt 0-127

a 128-256?

když deklarace proměnné, kde se ukládá přijatý byte, je BYTE?

neexistuje tedy nic obecně známého, nějaká častá chyba? Pokud ne, budu bádat dál nad svou chybou.
děkuji

hakamusai
Příspěvky: 943
Registrován: 17 dub 2007, 02:00

#4 Příspěvek od hakamusai »

Věřím,že Ty víš o co konkrétně jde,ale ostatní neví -např. v jakém jazyce(vypadalo by to i na Pascal),co za překladač atd. Může být problém i v datovém typu.

Uživatelský avatar
michalino
Příspěvky: 348
Registrován: 03 srp 2009, 02:00

#5 Příspěvek od michalino »

Tak zkouším na úplně nejjednodušším základu, úplný základ a začátek:

Přijímací rutina v bascomu je:

Dim prijatyznak as byte

While Ischarwaiting() > 0
Prijatyznak = Inkey()
Waitms 100
locate 1,1
lcd prijatyznak
waitms 1000
cls
Wend

Odesílám zaručeně správně byte, protože 0-127 mi to zobrazí a vše nahoru do 256 mi to nezobrazí nic, tedy jen BYTE=63, což je otazník.

Prosím o pomoc,
děkuji

Uživatelský avatar
monterjirka
Příspěvky: 2761
Registrován: 14 čer 2003, 02:00
Bydliště: Blížejov

#6 Příspěvek od monterjirka »

A nemáš nějak omezen příjem, jen na 7 bitů (což by odpovídalo hodnotám 0 - 127) a při příchodu 8 bitového čísla s 1 (H) na nejvyšším místě to bere jako signalizovanou chybu přenosu a celé to "zahodí"

Uživatelský avatar
AB1
Příspěvky: 312
Registrován: 23 lis 2009, 01:00

#7 Příspěvek od AB1 »

Jak říká monterjirka, podívej se v Bascomu na nastavení Menu-Options-Communication jestli tam máš správně Databits=8.

A zkontroluj to i na vysílací straně.

Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“