PIC USART even parity - Printable Version +- DIY Electronic projects (https://forum.yu3ma.net) +-- Forum: Mikrokontroleri (https://forum.yu3ma.net/forumdisplay.php?fid=52) +--- Forum: Microchip PIC (https://forum.yu3ma.net/forumdisplay.php?fid=53) +--- Thread: PIC USART even parity (/showthread.php?tid=2560) |
PIC USART even parity - dlalkovic - 03-26-2021 USART hardverski modul ne podržava odd/even parity. Da li bi kontroler trebao da i ovakav format čita bez problema ? Na starom Hyperterminal-u tek kada se odabere even počinju da se vide karakteri ( tako sam i utvrdio da serijski signal nije 8N1) Naime, PIC 8N1 ispravno čita, a even parity brlja. Radi se o PIC 16F727. Da li postoji neko iskustvo članova? d.l. RE: PIC USART even parity - vojinilic - 03-26-2021 Da li mizes da probas da postavis na kontroleru 9-bitni podatak, pa taj 1 bit da glumi bit parnosti? Taj bit bi mora rucno da se napravi. RE: PIC USART even parity - dlalkovic - 03-26-2021 Hvala Vojine. Dobra ideja-nisam probao podesavanje da je podatak od 9 bitova. Taj bit mogu da ignorisem jer mi integritet podatka nije bitan. Kada probam, napisacu sta je bilo... RE: PIC USART even parity - dlalkovic - 03-31-2021 Hardverski modul tacno cita ASCII karaktere kada se formalno cita i 9. bit. Dakle, kada se prima parity bit on moze da se ignorise. Ako je bitan, moze se softverski proveriti da li je parnost korektna. Jos jednom hvala Vojinu za pomoć. p. RE: PIC USART even parity - vojinilic - 03-31-2021 Druze, hvala tebi na ovim korisnim informacijama i testiranju. Nadam se da ce ovaj podatak da bude koristan svima koji budu imali problem sa bitom parnosti. Svaka cast. RE: PIC USART even parity - ognjan - 04-01-2021 To bas rijetko zatreba, ali ipak zatreba... Datum na ovom fajlu, koji iskopah sa svog diska, je iz 2004. god. Ovo je najbrzi nacin za brojanje bitova, a kad se izbroje, samo treba setovati taj parity bit, na osnovu rezultata tog brojanja, tj. njegovog bita 0, i sve radi uredno... Imate slanje sa 9 bita i setovanim parity bitom. ================================================ #include <pic.h> /* Freely distributable in this original form. Any questions or comments? shane@keyghost.com Updates to FAQ available from http://www.keyghost.com/htpic Bit counter by Ratko Tomic, modified for PIC micro by Shane Tolmie */ unsigned char bit_count(unsigned int x) { unsigned char n=0; /* ** The loop will execute once for each bit of x set, this is in average ** twice as fast as the shift/test method. */ if (x) do n++; while (0!=(x=x & (x-1))); return (n); } unsigned int n; unsigned char c; void main(void) { n=0; while (n<0xFFFE) { n++; //put a break point here and watch c and n! printf("n=%d, c=%c\n", n, c); c=bit_count(n); } } =============================================== RE: PIC USART even parity - vojinilic - 04-01-2021 (04-01-2021, 09:47 AM)ognjan Wrote: To bas rijetko zatreba, ali ipak zatreba... Datum na ovom fajlu, koji iskopah sa svog diska, je iz 2004. god. Ima i ova fora sa makroom. Ne znam da li je brze, ali jeste elegantno resenje: #define PARITY(b) ((((((b)^(((b)<<4)|((b)>>4)))+0x41)|0x7C)+2)&0x80) RE: PIC USART even parity - Macola - 04-01-2021 Kako najbrže prebrojati ovce na livadi? Prebrojimo broj nogu pa podelimo sa četiri, potom šiftujemo jednom u desno, ako nas to zanima u bajtovima :-) Šalim se malo. Odokativno mi se čini da je brže ovo sa makroom, mada to zavisi od kompajlera, a nemam živaca da napišem u asm (najbrže). RE: PIC USART even parity - vojinilic - 04-01-2021 (04-01-2021, 11:56 AM)Macola Wrote: Kako najbrže prebrojati ovce na livadi? Ajd, ja sam mladji : Code: movwf Parity |