Quote (xGurke @ 7 Oct 2013 12:06)
reméltem, hogy 3 év mechatronikával fel tudsz építeni kapcsolatot soros kábellel mikrokontroller és gép között

én ennek is örülök már, mert soha nem csináltam ilyet és ~fél óra alatt sikerült összehozni a jelenlegi állapotot, hogy tudok kapcsolgatni ledeket realtime
De azért az én hozzászólásomat nem értette, szóval nem tud.
Az nem kapcsolat, hogy kiküldi és folyamatosan várja a parancsokat. Azért illene tudni, hogy mi az az interrupt. ^^
Quote (xGurke @ 7 Oct 2013 12:04)
az a bajom, hogy beírom neki, hogy lol, akkor visszaküldi, hogy lol. de ha 3 karakternél többet írok neki, akkor valamiért meghal
de tuti a delayezést basztam el, majd ma este megnézem
megszakításokkal csinálod, vagy folyamatosan olvasod ki?
A karaktereket egyszerre küldöd?
Ezt elegánsan úgy kellene megoldani, hogy az RX complete flag-re beállítasz egy megszakítást (interruptot), és ott csak annyit csinálsz, hogy egy FIFO-ba betöltöd az eredményét, és csak a megszakításból már visszatérve állsz neki feldolgozni, így biztosan fogadni tudsz szinte bármennyi adatot. Itt a FIFO mérete lesz a korlátozó tényező, de ha a feldolgozásod ideje kisebb, mint a bejövő adatok sebessége, akkor gyakorlatilag végtelen.
A BAUDratet is csökkentheted, ha tudod, hogy nem kell sok adat, akkor mi a 9600 8N1 -módot szoktuk használni (a 16MHz-s oszcillátorokkal legalábbis) (9600 b/s - 8bites adatcsomag - Nincs paritás bit - 1 stopbit), de ezt a µProcesszor adatlapján nézd meg, hogy az adott oszcillátor frekvencia alapján melyik az ami jó neked, mert nem mind lesz az.
Ha a visszaküldés folyamatos, akkor érdemes figyelni hozzá a TX complete flaget, és figyelni, hogy kész van-e az előző mire a következőt küldöd. Általában ezt úgy elegáns megoldani, hogy valahol figyeled hogy a küldő buffer üres-e, és ha igen, akkor elindítod "kézzel" az első küldését a továbbiakat, meg a TX complete flagre kiváltott interrupttal.
A PIC-et annyira nem vágom, szal nézz utána, hogy milyen szolgáltatásokat nyújt ezügyben az adott µProcesszor. Az atmegán például duplán bufferelt az UART.
This post was edited by CyberPunk666 on Oct 7 2013 05:20am