TXD, RXD pic 16F84A
Moderátor: Moderátoři
TXD, RXD pic 16F84A
Zdravím, abych upřesnil můj problém... Mám z PC vyveden COM a z něho tx. Potřebuju v picu (v mém případě na PORTA0) udělat rx a číslo, které přijme aby se změnila log. uroven na PORTBx.
Například když pošlu 00000001 Tak se portb1 změní na log. 1 když pošlu znova změní se zpátky na log 0. Když pošlu 00000100 -> PORTB4 -> na log. 1 a když se pošle znova 00000100 tak se vrátí zpět na log úroveň 0. Našel sem něco na internetu ale zaboha to nemůžu rozchodit viz zdroj....
Už se o to snažím 3 dny a nic... Budu vděčný za každou radu... Díky
Například když pošlu 00000001 Tak se portb1 změní na log. 1 když pošlu znova změní se zpátky na log 0. Když pošlu 00000100 -> PORTB4 -> na log. 1 a když se pošle znova 00000100 tak se vrátí zpět na log úroveň 0. Našel sem něco na internetu ale zaboha to nemůžu rozchodit viz zdroj....
Už se o to snažím 3 dny a nic... Budu vděčný za každou radu... Díky
- Přílohy
-
- uart.pic.txt
- (2.33 KiB) Staženo 151 x
http://www.8bitu.cz/clanek/serial-pic16 ... prenos-ii/
Zkus ten program v tomto odkazu, je tam jiné časování prodlevy a jiná rychlost přenosu než u tebe.
Podle toho když tvůj program porovnám s odkazem, máš chybu v časování v podprogramu prodleva.
Zkus ten program v tomto odkazu, je tam jiné časování prodlevy a jiná rychlost přenosu než u tebe.
Podle toho když tvůj program porovnám s odkazem, máš chybu v časování v podprogramu prodleva.
ok zkusim a uvidim, díkyStanda33 píše:http://www.8bitu.cz/clanek/serial-pic16 ... prenos-ii/
Zkus ten program v tomto odkazu, je tam jiné časování prodlevy a jiná rychlost přenosu než u tebe.
Podle toho když tvůj program porovnám s odkazem, máš chybu v časování v podprogramu prodleva.
-
- Příspěvky: 2551
- Registrován: 13 zář 2005, 02:00
Společnost Mikroelektronika (Jugoslávie nebo tam někde) nabízí vývojové prostředí pro jednočipy PIC (Pascal, Basic, C), do 2kB zdarma, a součástí je i knihovna, kde je i SW UART, takže můžete pomocí RS232 komunikovat i s PICem, který nemá HW UART. Použití je jednoduché - dadefinujete vodič Rx (třeba PortA.0), vodič Tx (třeba PortA.1) a rychlost (třeba 9600). No a pak už jen příkazem Soft_UART_Read přečtete slovo z 232kové linky a příkazem Soft_UART_Write pošlete slovo na 232kovou linku.
Petr Filipi
Petr Filipi