Stránka 1 z 2
Jak dostat do TXREGu decimalni hodnotu?? PIC16F690
Napsal: 21 bře 2010, 21:41
od bluepatch
Zdravim..mam problem poslat hodnotu z picu 16F690 do pc pres FTDI chip. Komunikaci v klidku navazu, ale pokavad ulozim do TXREGu hodnotu napriklad D'50' tak mi prijde 2ka jako hodnota z tabulky ASCII a za boha nemuzu prijit na to jak poslat namerenou hodnotu. Pokavad tam ulozim jakoukoli hodnotu, binarne, decimalne, nebo hexa - vzdy mi prijde znak z ascii tabulky. Doufam ze to jde nejak jednoduse obejit a nebude se na to muset psat nejaka funkce. Dik za kazdou radu.
Napsal: 21 bře 2010, 21:53
od Andrea
Po sériové lince se posílají byty, co znamenají, záleží na programech, které je vysílají a na druhé straně přijímají. Takže pokud chceš, aby reprezentovaly přímo dekadickou hodnotu, musíš napsat programy na obou stranách sériové linky tak, aby je braly jako dekadickou hodnotu.
Napsal: 21 bře 2010, 22:00
od bluepatch
Prijimam to zatim pomoci klasickeho hyperterminalu 9600 baudu. Takze na strane prijemce s tim nic neudelam. Vedel bys jak to naprogramovat v assembleru?
MOVLW D'50'
MOVWF TXREG
Toto proste posle ascii hodnotu a nic s tim neudelam. Sem v tom lehci novacek tak se omlouvam za pocatecni tupost:)
Napsal: 21 bře 2010, 22:01
od Andrea
Napsal: 21 bře 2010, 22:01
od Atlan
a ked napises movlw 50 bez tych apostrofou co vyjadruju znak ?
Napsal: 21 bře 2010, 22:04
od bluepatch
Tak mi to MBLAB zkompiluje jako hodnotu v hexa..
Napsal: 21 bře 2010, 22:06
od Atlan
aj tak nechapem tomu D50... ten register je 8b predssa ?
Napsal: 21 bře 2010, 22:10
od bluepatch
Do toho registru muzu napsat B'10100000', nebo D'50', nebo treba 0xFF, 'K' nebo jen 50 a vzdycky si to prelozi do hexa a posle acii znak
Napsal: 22 bře 2010, 11:02
od ZdenekHQ
Číslo 50 musíš poslat jako dva znaky, které vytvoříš tak, že k číslu 48 (což je znak "nula") přičteš jednou 5 a pošleš, a pak 0 a pošleš.

Napsal: 22 bře 2010, 15:29
od bluepatch
Takze jsem si v dotazu uz napul odpovedel sam, ze si musim napsat funkci.. ta hodnota se bude porat menit a bude i vic nez dvouciferna, takze si ji nejak musim rozkouskovat a pomoci funkce poslat jednotlivy znaky..fuj:( Existuje naka ta funkce v assembleru na rozdeleni toho cisla na jednotlivy znaky? Dik
Napsal: 22 bře 2010, 15:31
od Andrea
Říká se té funkci dělení 10ti

Napsal: 22 bře 2010, 22:07
od bluepatch
Tak dikes..uz sem si docela rozmyslel jak to udelam..jen takova mala mikrovadicka.. jak se v assembleru deli? Na tohle nasobeni nejde pouzit..
Napsal: 23 bře 2010, 09:44
od ZdenekHQ
Myslím, že si Andrea šla namočit ručník na hlavu....

Napsal: 23 bře 2010, 09:59
od ZdenekHQ
Jinak my, co máme k dispozici DIV a MUL to máme jednoduchý, "vy" musíte prostě dělit pomocí opakovaného odečítání...
Napsal: 23 bře 2010, 10:28
od Andrea
ZdenekHQ píše:Myslím, že si Andrea šla namočit ručník na hlavu....

To není na hlavu, to je aby to víc štípalo.