Fórum témák
» Több friss téma |
A TRISA-val a PORTA adott lábai lesznek állítva.
Nem!
A TRISB =0b1 azaz TRISB = 1 azaz TRISB = 0x01 az RB0 -t fogja bemenetnek állítani, a többit kimenetnek. A TRISB =0b10000000 azaz TRISB = 128 azaz TRISB = 0x80 az RB7 -t fogja bemenetnek állítani, a többit kimenetnek. A TRISB =0b11 azaz TRISB = 3 azaz TRISB = 0x03 az RB0 -t és az RB1 -et fogja bemenetnek állítani, a többit kimenetnek. A TRISB =0b11000000 azaz TRISB = 192 azaz TRISB = 0xC0 az RB7 -et és az RB6 -ot fogja bemenetnek állítani, a többit kimenetnek. A hozzászólás módosítva: Okt 5, 2016
Nem működhet helyesen mindkét esetben.
Mint előttem írták a TRISB = 0b00000001 az RB0-t állítja bemenetnek, 0-val kimenetnek. Ha kimenet akkor a start/stop gomb nem működhet. Illetve rövid ideig akár működhet, mert adatlap szerint a PORTB regiszter beállhat magasra is resetkor, de ha megnyomod a start/stop gombot azaz földre húzod a magasra állított kimenetet azt hosszú távon (ami lehet, hogy elég rövid lesz) nem fogja megköszönni a kimenet. Ha pedig az RB-7-et akarod váltogatni, azaz TRISB = 0b10000000 vagy 0 akkor az meg az LCD-nek egy adatvonala tehát az nem működne rendesen.
OOooooo... Köszönöm
Egy utolsót )) Analog bemenet kell egy nyomogomb ellenörzéshez??
Nem. Igy vagy ellenőrzöd állandóan BTFSS vagy BTFSC-el,,,vagy állitasz neki INTERRUPT-ot változás esetére.
Na most akkor teljes a káosz
Ezzel a beállítással. RA0,RA1:Kimenet RA2-RA5:Bemenet RA6,RA7:Kimenet RB0-RB7-ig:Kimenet.?
Dobok mindjárt egy hátast
18F46K22 Soros kimenetre tesztet írtam de közben mérem a baudrate ot és nem annyi mint ahogy matekozok 16MHz belső; SYNC:0 ; BRGH:0 ; BRG16:1 lejjebb p16=16 SPBRG1 : 99 nél mérek 2400BPS t BPS= hz / (16 * ( SPBRG + 1 ) ) 16000000 / (p16 * ( 99 + 1 ) ) ezzel 10000 lenne 16000000 / (p16 * ( 415 + 1 ) ) ezzel 2403 lenne Mi szivathat meg ? Kössz ==================== PIC MCU MHz: 4000000 ==================== SYNC:0 BRG16:1 BRGH:0 p16: 16 SPBRG: 49999 BPS : 5 SYNC:0 BRG16:1 BRGH:0 p16: 16 SPBRG: 23 BPS : 10416.6666666667 SYNC:0 BRG16:1 BRGH:0 p16: 16 SPBRG: 65535 BPS : 3.814697265625 SYNC:0 BRG16:1 BRGH:0 p16: 16 SPBRG: 0 BPS : 250000 SYNC:0 BRG16:1 BRGH:1 p16: 4 SPBRG: 65535 BPS : 15.2587890625 SYNC:0 BRG16:1 BRGH:1 p16: 4 SPBRG: 0 BPS : 1000000 SYNC:1 BRG16:1 BRGH:0 p16: 4 SPBRG: 65535 BPS : 15.2587890625 SYNC:1 BRG16:1 BRGH:0 p16: 4 SPBRG: 0 BPS : 1000000 SYNC:1 BRG16:1 BRGH:1 p16: 4 SPBRG: 65535 BPS : 15.2587890625 SYNC:1 BRG16:1 BRGH:1 p16: 4 SPBRG: 0 BPS : 1000000 ==================== PIC MCU MHz: 16000000 ==================== SYNC:0 BRG16:1 BRGH:0 p16: 16 SPBRG: 415 BPS : 2403.84615384615 SYNC:0 BRG16:1 BRGH:0 p16: 16 SPBRG: 99 BPS : 10000 SYNC:0 BRG16:1 BRGH:0 p16: 16 SPBRG: 49999 BPS : 20 SYNC:0 BRG16:1 BRGH:0 p16: 16 SPBRG: 23 BPS : 41666.6666666667 SYNC:0 BRG16:1 BRGH:0 p16: 16 SPBRG: 65535 BPS : 15.2587890625 SYNC:0 BRG16:1 BRGH:0 p16: 16 SPBRG: 0 BPS : 1000000 SYNC:0 BRG16:1 BRGH:1 p16: 4 SPBRG: 65535 BPS : 61.03515625 SYNC:0 BRG16:1 BRGH:1 p16: 4 SPBRG: 0 BPS : 4000000 SYNC:1 BRG16:1 BRGH:0 p16: 4 SPBRG: 65535 BPS : 61.03515625 SYNC:1 BRG16:1 BRGH:0 p16: 4 SPBRG: 0 BPS : 4000000 SYNC:1 BRG16:1 BRGH:1 p16: 4 SPBRG: 65535 BPS : 61.03515625 SYNC:1 BRG16:1 BRGH:1 p16: 4 SPBRG: 0 BPS : 4000000
Ezzel a beállítással a Fosc/(16*(Baud+1)) -->16000000/(16*(9600+1)) kellene lennie,ez kb.103-104-re jön ki.De amúgy az adatlapon pont van leírás sok beállításról,pont ez is benne van, 274.oldal.
Így van, viszont RB0-t bemenetnek kell állítanod a kapcsolás szerint.
Igen az már világos csak amit írtam az pont nem szemlélteti azt, hogy most melyik az RA0 és melyik az RA7. Szóval ha így van, hogy TRISA = 0b01001011 akkor az RA0 bemenet és az RA7 meg kimenet?
Mert ha TRISA = 0b01111110 akkor ebből nem derül ki, hogy melyik a RA0 és RA7.
Dehogynem. Így jönnek sorba, ezért jó ilyen esetekben bináris számokkal dolgozni. Ahol 1 van az beneten, ahol 0 az kimenet.
Igen így jobban átlátható, köszönöm.
Én is így gondoltam csak másképp vezettem fel.
Ohhh malőr
megvan egyik tesztnél levettem 4MHz re és úgymaradt ajjj 2500 el küld így de 2400 al is jól veszi
Sziasztok!
PIC18F családnál C18 fordítóval hogyan működik a linker script file? Definiálva van a bootloadernek a memória rész, meg a saját kódomnak is. De nekem valamiért a saját kód is a bootloaderbe kerül. Hogyan tudom megadni a fordítónak hogy melyik cím után kezdődjön a programom?
Sziasztok!
Nem régen kezdtem az ismerkedést a pic-ek világával! Assembly-ben programoztam már pic-et. Szeretnék készíteni egy sweep generatort. Nos a próblémám igazából az hogy nem tudom hogyan vagy mi alapján növeljem a frekvenciát. Illetve ti hogyan állnátok neki ennek a kis projektnek?
Szia!
Ez attól függ, milyen PIC-et használsz?
Tablazattal. A tablaban leteve az ido.
Szia! Bevallom őszintén fogalmam sincs a sweep generátorokról, de PIC-kel csak négyszög jelet tudsz rendesen, könnyen előállítani. Azt volna jó tudni, hogy mekkora freki a cél, könnyebben lehet valami okosat mondani.
Sziasztok!
Átírtam egy pic16f877 pwm vezérlő programját,de nem működik.Valaki meg tudná nézni? Előre is köszönöm.
Mondjuk az első hiba, hogy az elején 16F690-van beleírva...A többihez nem tudok hozzászólni, én assemblyzek.
Szia!
Az egyes frekikhez szükséges beállításokat le kell tárolnod egy táblázatba, majd a táblázat adatai között a sweep időnek megfelelően lépkedni a határfrekiknek megfelelő értékek között. Nem biztos, hogy LED villogtatás után ez a következő feladat, először külön-külön próbálgasd ki a TIMER-ek működtetését, a táblázat kezelését, a sweephez szükséges menük kialakítását ( ha pl. potikkal akarod beállítani az értékeket, akkor az AD átalakítást !) és a megszakítással is tisztában kell lenned ! Ezek után ki kell választanod a megfelelő PIC-et ( pl. lábszám, perifériák, memóriaméret, AD átalkítók száma szerint!), elkészítened a kapcsolási rajzot és kezdheted a programozást egy deszkapanelen. Ha kész és végleges, akkor NYÁK, dobozolás ! szerk.: Ez egy lehetséges út ! A hozzászólás módosítva: Okt 6, 2016
Sziasztok
Abban kérném a segítségeteket, hogy egy 32bites pic el szeretnék egy rfid modullal és egy gsm/gps modullal kommunikálni I2C buszon keresztül, a problémám az, hogy nem tudom hogy lehet rávenni a pic et hogy a 2db slave-től fogadjon adatot. Bonyolult ennek a megvalósítása vagy egyszerűen kivitelezhető? Uarton keresztül tudom könyebb lenne, de szeretném kipróbálni ezt a protokolt is. Esetleg ha valaki tudna linkelni egy részletesebb leírást hogyan is néz ki ez a szabvány nagyon megköszönném mivel a neten nem nagyon találtam infót (lehet én voltam a vak) Előre is köszönöm nektek.
Ha nem azonos a slave-ek címe,akkor mehet 1db I2C-n.Csak a sebességre figyelj,hogy mind a kettő tudja.Amúgy nem vészes a kezelése,csak nézd meg,hogy melyiknél milyen az adatküldés,fogadás menete.Az adatlapokon általában(mindig) van idő-diagram ,amiből látható a menet.
Itt van leírás,amiből kiindulhatsz.
Sziasztok!
Tanácstalan vagyok, ezért segítséget kérnék. Adott az alábbi nyák és programrészlet. Két gondom van vele. Az egyik, hogy a Timer1 hol elindul, hol nem, de inkább nem. A másik, hogy az LCD inicializálása nem hajtódik végre rendesen. Ha fel van programozva a PIC és bekapcsolom a tápot nem inicializál rendesen. Ha már van táp és mondjuk újraprogramozom a PIC-et akkor működik rendesen. Próbáltam már több várakozást beiktatni, de nem igazán segített.
Az LCD-vel csináltatsz a bekapcsolás után melegreszetet?
Az micsoda? Lehet csinálok, de nem tudom pontosan mire gondolsz.
Bekapcsolás után vársz egy ideig, majd 4x egymás után elküldöd ezt a parancsot:
MOVLW B'00110000' Ez reszeteli a kijelzőt. Ezután még egy kis kivárás, majd inicializálhatod. Ugyanis, ha a tápfesz nem elég gyorsan épül fel, a kijelző beborulhat.
Ezt nem igazán értem, Ez a paracs elméletileg a 4 bites mód beállítása, semmi más. Egyébként a fura az, hogy másik áramkörben, másik PIC-kel tökéletesen működik.
Nem igazán.
a 4 bites mód átkapcsolása ez:B'00100000' |
Bejelentkezés
Hirdetés |