Stránka 1 z 4

UART příjem

Napsal: 24 lis 2013, 14:36
od toMajstr
dobrý den, mohl by jste mi někdo poradit s rozhraním uart v assembleru?
Potřebuju aby pic zjistil jestli něco přichází a když ano tak aby to uložil do w.
Zkouśel jsem hledat ale všechno bylo v céčku.
předem dík za odpověď

Napsal: 24 lis 2013, 15:06
od ohryzek36
Nemělo by stačit povolit v přerušení přerušení od USARTu (přes registr INCON a PIR1), identifikovat ho podle bitu RCIF, možná trochu pohledat chyby podle RCSTA a pak jen "movf RCREG,W" ?

(teda - tak je to u PIC18F452)

Možná jsem ale napsal blbost - mám nehoráznou kocovinu :? .

Napsal: 24 lis 2013, 15:27
od toMajstr
Pochopil jsem že přerušení někam skočí aniž bych něco pořád hlídal kódem ale nevím jak to napsat :(

Napsal: 24 lis 2013, 16:55
od toMajstr
nešlo by to udělat tak že by se program zastavil (zacyklil) a počkalo by to až to něco přijme a pak by to šlo dál?

Napsal: 24 lis 2013, 17:00
od ZdenekHQ
Obecně příjem znaku buď jen nastaví příznaky, nebo rovnou skáče (a tím vyvolá přerušení hlavního programu) na nějaké místo, kde leží podprogram obsluhy příjmu znaku, jeho čtení atd.

Co v tu chvíli dělá hlavní program je téměř jedno...

Napsal: 24 lis 2013, 17:14
od toMajstr
a je nějakej příkaz co by mi zjistil jestli něco přichází?

Napsal: 24 lis 2013, 18:56
od ZdenekHQ
To je těžká debata, já používám ATMELY a Ty zase nevíš, jak probíhá obsluha přerušení, co se musí povolit a kam to pak popř skáče.

Napsal: 24 lis 2013, 19:02
od toMajstr
no to nevím ale představoval bych si to asi takhle: pokud přichází data pokračuj jinak se vrať o jeden řádek nahoru potom by se trěba mohla rozsvítil ledka (čtení dat bych dodělal později)

Napsal: 24 lis 2013, 19:08
od forbidden
Úplně dole mám demo program. Z toho to jde celkem pochopit. Vzhledem k tomu, že nic jinýho nedělá, nepoužívá přerušení. V reálné aplikaci by to přes přerušení bylo lepší.
Mimochodem, připadá mi, že na to všechno jdeš moc rychle. Nejdřív bych se naučil pořádně základy, pak můžeš pokročilejší věci jako USART atd...

Napsal: 24 lis 2013, 19:55
od Chenzee
Odpověď na tvoji otázku tu máš od "ohryzka". Když koukneš do datasheetu, nejspíš tam najdeš vzorky potřebného kódu a všechny informace, které k tomu potřebuješ. Jestli jsi jej četl a nerozumíš tomu, je to jen důkaz toho, že je nutné začít něčím jednodušším pro pochopení základních principů. Pak ti to začne dávat smysl. Ignorovat totiž použití přerušení a zadřít program pouze na testu příjmu slova je možné pouze při testu, v reálné aplikaci je to v podstatě nepoužitelný.

Napsal: 24 lis 2013, 19:58
od toMajstr
díky, ale jsou tam místa kterým nerozumím jako třeba k čemu jsou ty proměný, nebo co je příznak a a je toho víc...

Napsal: 24 lis 2013, 20:00
od forbidden
To jen dokazuje, že máš začít od začátku.

Napsal: 24 lis 2013, 20:11
od toMajstr
kdyby na to byla nějaká online učebnice tak, s tím nemám problém (vím že je jich spoustu anglicky), ale já projíždím net a když mě něco zaujme tak to zkusím...
poraďte prosím čím bych měl začít

Napsal: 24 lis 2013, 20:15
od serviceman
toMajstr píše:poraďte prosím čím bych měl začít
Angličtinou.

Napsal: 24 lis 2013, 20:19
od toMajstr
na svojí angličtině pracuju ale jde to dost pomalu :(