Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Serijska pomunikacija sa PIC-om

[es] :: Elektronika :: Mikrokontroleri :: Serijska pomunikacija sa PIC-om

[ Pregleda: 3251 | Odgovora: 19 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

johnny_hush
Belgrade, Serbia

Član broj: 112918
Poruke: 528
89.216.100.*

Sajt: johnnyhush.com


+1 Profil

icon Serijska pomunikacija sa PIC-om03.01.2008. u 22:55 - pre 198 meseci
Na koji nacin bi mogao da, kada posaljem serijskim putem (UART - RS232 standard) neku npr. 8 bitnu informaciju PIC nju primi, proveri da li se podudara sa isto takvom 8 bitnom inforacijom vec zadatom (npr. cuva se u eeprom-u) i naravno u zavisnosti od rezultata ode na odredjenu labelu?

Koristi se PIC16F84A koji nema hardverski UART, znaci potrebo je softversko resenje.

Ono sto bi meni pomoglo je primer koda u assembleru kako bih shvatio na koji nacin to da u radim [radim samo sa asm.]

U svakom slucaju svaka pomoc je dobrodosla.
http://johnnyhush.com - Electronics
 
Odgovor na temu

obranko
severna amerika

Član broj: 36599
Poruke: 152
*.cpe.net.cable.rogers.com.



+1 Profil

icon Re: Serijska pomunikacija sa PIC-om04.01.2008. u 00:28 - pre 198 meseci
pozdrav,

predpostavimo da si resio hardverski deo. prikaci izlaz iz rs232 kola na int pin mikrokontrolera. kada se desi prekid, u rutini za prekid podesis timer za generise prekid posle pola bit vremena (ako je brzina 2400bps pola bit vremena je 1/(2400*2)sec). kada se desi taj prekid proveris da li je int pin i dalje nizak (da ne reagujes na smetnje), ako jeste, podesis timer da generis prekid posle celog bit vremena. kada se taj prekid dogodi, ucitas vrednost int pina (to ti je prvi bit). sve ponovis za preostale bite podatka i za stop bit. sada sve bite podataka koje si ucitao skupis u jedan bajt i to je podatak koji ti je poslan.
 
Odgovor na temu

sander
Aleksandar Golovic
Beograd

Član broj: 21336
Poruke: 211
*.adsl-1.sezampro.yu.



Profil

icon Re: Serijska pomunikacija sa PIC-om04.01.2008. u 00:36 - pre 198 meseci
Ili jednostavno koristis gotove biblioteke za rad sa softverskom rs232 komunikacijom u raznoranim c, pascal ili basic kompajlerima.
 
Odgovor na temu

johnny_hush
Belgrade, Serbia

Član broj: 112918
Poruke: 528
89.216.100.*

Sajt: johnnyhush.com


+1 Profil

icon Re: Serijska pomunikacija sa PIC-om04.01.2008. u 01:38 - pre 198 meseci
Pa bih ali ne radim ni sa jednim jezikom za mikrokontrolere, osim sa assemblerom...

@obranko Hvala!
http://johnnyhush.com - Electronics
 
Odgovor na temu

sander
Aleksandar Golovic
Beograd

Član broj: 21336
Poruke: 211
*.smin-1.sezampro.yu.



Profil

icon Re: Serijska pomunikacija sa PIC-om04.01.2008. u 10:50 - pre 198 meseci
Ne zameri, lepo je to sto imas volje da to radis pesice ali to je cisto gubljenje vremena i zivaca. Moja preporuka je da sto pre predjes na C, asembler vec poznajes i ta kombinacija je dobitna. Recimo koliko jednostavno to sto ti hoces izgleda u C-u:

switch (getc()) {

case 0: --deo programa koji se izvrsava ako je podatak dobijen preko rs232 0 --
break;

case 1: ---
break;

- - - - - - -

case 255: ----
break;
}
 
Odgovor na temu

johnny_hush
Belgrade, Serbia

Član broj: 112918
Poruke: 528
89.216.100.*

Sajt: johnnyhush.com


+1 Profil

icon Re: Serijska pomunikacija sa PIC-om04.01.2008. u 14:09 - pre 198 meseci
Hvala, samo me zanima gde bih mogao da nadjem tutoriale o programiranju PIC-ova u C-u?
http://johnnyhush.com - Electronics
 
Odgovor na temu

sander
Aleksandar Golovic
Beograd

Član broj: 21336
Poruke: 211
*.smin-1.sezampro.yu.



Profil

icon Re: Serijska pomunikacija sa PIC-om04.01.2008. u 14:36 - pre 198 meseci
Ako trazis literaturu o programiranju u C-u za PIC kontrolere jedino izdanje Infoelektronike (CCS C compiler)
Ako moze i na engleskom, Mikroelektronika (njihov C kompajler sa propratnom dokumentacijom), user manuel-i od prozvodjaca kompajlera a ima da se nadje i na netu nesto knjiga u PDF formatu pisane za pojedine kompajlere ali i o c programskom jeziku uopste. Videcu da upload-ujem nesto od toga.
 
Odgovor na temu

johnny_hush
Belgrade, Serbia

Član broj: 112918
Poruke: 528
89.216.100.*

Sajt: johnnyhush.com


+1 Profil

icon Re: Serijska pomunikacija sa PIC-om04.01.2008. u 14:53 - pre 198 meseci
Ok, bio bih ti veoma zahvalan
http://johnnyhush.com - Electronics
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.co.yu.



+7 Profil

icon Re: Serijska pomunikacija sa PIC-om04.01.2008. u 16:56 - pre 198 meseci
sander,

pre toga sigurno se inicijalizuje serijski kontroler (bodova brzina i ostali parametri komunikacije). Sta vraca getc() ako nije nista primljeno sa linije (vidim da si stavio sve slucajeve u switch od 0 do 255). Koliki je bafer za prijem podataka, kako se on postavlja. Prijem mora biti na interrupt, a interrupt procedura treba da puni bafer, a getc() da ga prazni (bafer tipa prvi udje-prvi izadje, ili kruzni bafer?). Sta ako se prepuni bafer, kako se to saopstava?

Ja sve to radim u asembleru, imam poseban modul za sve sto sam opisao, ali me interesuje kako je taj mehanizam podrzan u C-u. Interesantno mi je sa aspekta kompajlera visih programskih jezika. Napisi mi i kako si zadovoljan sa postojecim mehanizmom za rad sa komunikacijom u C-u.

Unapred hvala.
 
Odgovor na temu

johnny_hush
Belgrade, Serbia

Član broj: 112918
Poruke: 528
89.216.100.*

Sajt: johnnyhush.com


+1 Profil

icon Re: Serijska pomunikacija sa PIC-om04.01.2008. u 17:02 - pre 198 meseci
@korak da li bi mozda mogao da postujes tu rutinu u assembler-u koju ti koristis?
http://johnnyhush.com - Electronics
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.co.yu.



+7 Profil

icon Re: Serijska pomunikacija sa PIC-om04.01.2008. u 17:31 - pre 198 meseci
Mogu ali nije, nazalost, za PIC.
Doduse, uz potrebna objasnjenja nije problem da se napise i za PIC, jer nije komplikovana. Mogu paralelno naredbama MC908 da se pisu naredbe za PIC.

Ako si zainteresovan, obavesti me.
 
Odgovor na temu

johnny_hush
Belgrade, Serbia

Član broj: 112918
Poruke: 528
89.216.100.*

Sajt: johnnyhush.com


+1 Profil

icon Re: Serijska pomunikacija sa PIC-om04.01.2008. u 17:57 - pre 198 meseci
Pa ako na zalost nije za PIC, mozda bi mogao da napises neki prinicp, objasnjenje, koje bi mi znacilo u slucaju za PIC

pozz
http://johnnyhush.com - Electronics
 
Odgovor na temu

sander
Aleksandar Golovic
Beograd

Član broj: 21336
Poruke: 211
*.adsl-1.sezampro.yu.



Profil

icon Re: Serijska pomunikacija sa PIC-om04.01.2008. u 22:51 - pre 198 meseci
Da inicijalizuje se direktivom (ccs c compiler) #use rs232(baud=9600, xmit=PIN_A2,rcv=PIN_A3). Posto kontroler koji on misli da koristi nema hardverski USART ne ide u interapt kod prijema. Ili koristi getc() funkciju koja ce cekati prijem podataka (mena time-out) ili ako treba da radi i jos ponesto osim cekanja na prijem moze da koristi funkciju kbhit() koja daje TRUE ako je start bit poslat (kod software-skog USART-) ili da li je primljen podatak (kod hardware-skog USART-a). Kod software-ske varijante funkciju je potrebno pozivati 10 puta baud rate kako se ne bi desilo da se preskoci citanje podataka. Stavio sam sve slucajeve samo kao primer, sto se bafera tice postoji hardware-ski FIFO od 2 bajta ako se ne procitaju podaci a stigne treci prijavljuje se greska OVERRUN (vazi za kontrolere do pic24 serije, kod 24F serije je nesto drugcije dok kod 24H serije USART moze da koristi i DMA za baferovanje podataka, nisam koristio samo se prisecam Microchip-ovog work shop-a za 16 bitne PIC kontrolere. Dobra stvar kod hardware-skog USART-a je interapt na detekciju adrese (9 bit) zgodno kod povezivanja vise kontrolera u mrezu. Inace uz CCS C dolazi dosta primera tako da preporucujem ovaj kompajler eventualnim pocetnicima u C-u.

Spakovao sam nesto knjiga koje sam skupio na net-u (100Mb) pa kad mi se zavrsi uploadovanje saljem link.
 
Odgovor na temu

johnny_hush
Belgrade, Serbia

Član broj: 112918
Poruke: 528
89.216.100.*

Sajt: johnnyhush.com


+1 Profil

icon Re: Serijska pomunikacija sa PIC-om05.01.2008. u 01:26 - pre 198 meseci
Hvala unapred
http://johnnyhush.com - Electronics
 
Odgovor na temu

sander
Aleksandar Golovic
Beograd

Član broj: 21336
Poruke: 211
*.adsl-1.sezampro.yu.



Profil

icon Re: Serijska pomunikacija sa PIC-om05.01.2008. u 07:02 - pre 198 meseci
Evo linka:

http://rapidshare.de/files/38210897/PIC-books.zip.html
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.co.yu.



+7 Profil

icon Re: Serijska pomunikacija sa PIC-om05.01.2008. u 12:28 - pre 198 meseci
sander hvala.

Mada me je interesovao samo slucaj sa hardverskom kontrolom. Cini mi se da je bafer od 2 bajta suvise mali, a nisam zapazio da si u tekstu napisao sta vraca getc() ako nije primljeno nista (prazan bafer)

johnni_hush: napisacu dodatna objasnjenja i objaviti.

Pozdrav.
 
Odgovor na temu

johnny_hush
Belgrade, Serbia

Član broj: 112918
Poruke: 528
89.216.100.*

Sajt: johnnyhush.com


+1 Profil

icon Re: Serijska pomunikacija sa PIC-om05.01.2008. u 14:14 - pre 198 meseci
@sander Thanks!

@korak Unapred hvala, dosta bi znacilo

pozz
http://johnnyhush.com - Electronics
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.co.yu.



+7 Profil

icon Re: Serijska pomunikacija sa PIC-om05.01.2008. u 14:26 - pre 198 meseci
johnni_hush:

Kao sto sam ti obecao saljem ti moj modul za komunikaciju sa opisom.

Neki su primetili da gotovo nema besplatnih razvojnih alata za Motorolu (sto je glupa poslovna politika), pa sam morao da napravim svoj razvojni alat koji ukljucuje editor, asemblerski kompajler, simulator, loader programa na MCU i dibager. Asembler je napravljen po mom ukusu i takav ne postoji nigde. Videces i sam. Ako nesto nije jasno pitaj. Isti asembler sam napravio i za AVR, ali nije dovoljno testiran jer sa AVR-om ne radim.

Pozdrav.
Prikačeni fajlovi
 
Odgovor na temu

sander
Aleksandar Golovic
Beograd

Član broj: 21336
Poruke: 211
*.smin-1.sezampro.yu.



Profil

icon Re: Serijska pomunikacija sa PIC-om05.01.2008. u 15:55 - pre 198 meseci
Citat:
korak: sander hvala.

Mada me je interesovao samo slucaj sa hardverskom kontrolom. Cini mi se da je bafer od 2 bajta suvise mali, a nisam zapazio da si u tekstu napisao sta vraca getc() ako nije primljeno nista (prazan bafer)

johnni_hush: napisacu dodatna objasnjenja i objaviti.

Pozdrav.


Bafer je dva bajta zato sto se ocekuje da ti je to dovoljno da barem jedan podatak procitas iz generisanog interapta kod prijema, ono jeste bilo bi bolje da je veci ali ni ovako nije lose. Funkcija getc() ce cekati prijem da bi se nastavilo izvodjenje programa i vratice primljeni podatak, kao sto rekoh ako se to ne zeli onda je potrebno koristiti funkciju kbhit() pa onda getc() ili jos bolje interapt na prijem podatka.
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.co.yu.



+7 Profil

icon Re: Serijska pomunikacija sa PIC-om05.01.2008. u 19:09 - pre 198 meseci
Sada je sve jasno, hvala

Pozdrav
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: Serijska pomunikacija sa PIC-om

[ Pregleda: 3251 | Odgovora: 19 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.