Fórum témák
» Több friss téma |
Szia!
Például használhatod hozzá a beépített belső referenciafesz. modult, amivel beállítod a billenési pontot és billenés után ( amit a megfelelő bit jelez! ) megváltoztatod a kívánt hiszterézisnek megfelelően a referenciafeszültség értékét. Hátránya ennek a megoldásnak, hogy a beépített felbontásnak megfelelően tudod csak állítani a referenciafeszt. ( most nem néztem konkrétan utána a lehetséges értékeknek )! Vagy használhatod külső lábon rákapcsolt referenciával, amit egy másik, vezérelt PIC láb segítségével megváltoztathatsz egy ellenállás végének 0 v. 5 V-ra húzásával ( ez adja a hiszterézist!)!
Szia!
Köszönőm, tetszik. Beleásom magam a témába, mert egy-két dolognak még utána kell nézzek, de ez sokkal szebb, mint az én próbálkozásom. A felbontás aligha gond, legfeljebb analóg oldalon kell egy kicsit hozzányúlni...
Kiválóan működik a tranzisztoros alacsonyabb sebességen (< 19200 Baud) és rövidebb kábelen (< 5 m). A programon nem kell változtatni semmit sem.
Segítsetek a kezdőnek!
Sikeresen (?) elkészítettem itthon a nyákot, de nem kapcsolódik a Pickit2. Csak szinte a minimális alkatrészeket forrasztottam be: foglalat, MCLR ellenállás, kondik, kristály. Idézet: „Found PICkit 2 - Operating System Version 2.32.0 PICkit 2 Unit ID = XX Target power not detected - Powering from PICkit 2 ( 5.00V) PKWarn0003: Unexpected device ID: Please verify that a PIC16F887 is correctly installed in the application. (Expected ID = 0x2080, ID Read = 0x0) PK2Error0049: VPP Voltage error. Check target and retry operation. PICkit 2 Read” A nyákon az ICSP lábak között nincs érintkezés, minden láb csak azzal a PIC lábbal érintkezik, amelyikkel kell. A PIC két VDD és két VSS lába között 0 az ellenállás, egymás között a bal oldalon 6Ohm, a jobb oldalon nincs érték. Proci nélkül nincs rövidzár a VDD/VSS között. (a proci visszatéve a próbapanelba működik) Mit ronthatok el?
Valami nem jól van bekötve valószínű. Töltsd fel a nyák rajzot is mert ez sötétbe tapogatás...
Én az MCLR környékét ellenőrizném, ha nincs meg a Vpp feszültség.
köszönöm. az MCLR és az RA0 láb összeért. elvágva működik, van kapcsolat.
Tied a pont.
Helosztok.
A megszakítás rutinban használok egy globális long változót, amit a mainban folyamatosan frissítek. Hogy lehetne megoldani azt, hogy csak azután fusson le a megszakítás, miután az értékadás megtörtént a mainban? A PC regisztert kéne figyelni? A cél az lenne hogy ne olvasson ki hülyeséget az interrupt rutin a változóból.
A frissítést kritikus szakasznak kell tekinteni és az alábbi módon kell "bekeretezni"
avagy
Esetleg csak akkor átvenni, ha tényleg módosult: Bevezetni egy jelzőbitet, amit a main állít, ha más beírta a long változót. A megszakítás figyeli a bitet. Ha 1, átveszi az értéket egy saját változóba és törli a jelzőbitet. A hozzászólás módosítva: Feb 22, 2015
Köszönöm a választ. Az utolsó nagyon jó ötlet, az lesz a nyerő szerintem. Nem tilthatom le a megszakítást, mert abban megy ki a jel a gyújtótrafónak (gyújtásvezérlő lesz), és ha kimarad ez a jel az baj.
Sziasztok!
PIC32MZ-vel bajlódok. SPI TX interrupt flag-et nem tudom törölni, és emiatt folyamatosan megszakításba ugrik ki. Miért nem tudom törölni? Ha nem küldök adatot egyáltalán, akkor se tudom. Amikor már bekapcsolom az SPI-t SPI1CONbits.ON-al, akkor 1-be vált a SPI1TXIF Flag.
Talán mert folyamatosan generálódik megszakítás, ha aTX buffer üres ill. nincs tele.
(Lásd: SPI1CON regiszter STXISEL bitek.) A TX megszakítást arra szokás használni, hogy biztosítsuk a folyamatos adatküldést. Tehát ha engedélyeztük a TX megszakítást, akkor az addig jön, amíg van üres hely a TX bufferben.
Igen, igazad van. A régebbi típusokon mintha nem így lett volna.
Bizonyos típusoknál, ahol nincs többszintű SPI FIFO buffer, ill. nem használjuk az Enhanced Buffer módot, ott csak a tranzakció végeztével generálódik megszakítás. Enhanced buffer módnál viszont kiválasztható hogy milyen esemány váltson ki megszakítást. (Akár külön TX és RX esetén is.)
Sziasztok!
Kérem szépen, hogy aki már égetett PIC18f4550 Ic-be BOOTLOADERT, kérem segítsen. Van egy ICD2 programozóm, de nem tudom bele égetni egy PIC 18F4550-be BOOT loadert. Lehetséges egyeltalán ICD2"-vel a be égetés? A hozzászólás módosítva: Feb 22, 2015
Sziasztok!
Csak egy shiftregiszterbe küldenék egy bájtot egy macroval, de nem akar sikerülni. Simán beágyazva a kódba működött, thát még mielőtt macroban írtam volna le hogy mit csináljon a controller. A kód:
És a SHIFT_PORTB macro:
Aztán már programmal vissza is fejtettem a lefordított .hex fájlt .asm-be, és csodálkoztam kicsit az INDF-en hogy hogyan működhet, rákeresgéltem, és arra jutottam, hogy akkor FSR-be betöltök egy címet az INDF-fel való zsonglőrködés előtt, de úgy sem volt jó (már kikommenteltem őket). A visszafejtett .asm:
Van valakinek valami tippje? Egész éjjel ezen tököltem :'))) Ja és a PORTB 7-es lábán led van, de nem világít a LOOP ellenére. A hozzászólás módosítva: Feb 23, 2015
Nem használtam még ICD 2-t, de azt tudom, hogy az MPLAB 8.x-ben programozók között szerepel az ICD 2 is, tehát lehet. Mi a probléma?
De buta vagyok srácok, nem tiltottam le az analóg csatornát, de most letiltottam és még mindig nem jó :/
És a:
sem volt jó ötlet, így már sokkal több életjelet mutat hogy DS-et 0x10-ra írtam, de még mindig tök logikátlan dolgokat hajt végre. Viszont már van remény
Sziasztok!
PIC32MZ-n újjabb problémában ütköztem. SPI DMA adatátvitelt szeretnék. A DMA interrupt csak egyszer fut le, és nem értem miért. Tehát a bufferemet kiküldi, de csak egyszer. Hibajelző bitek nem mutatnak hibát .Az inicializálás:
Mi lehet a gond? A hozzászólás módosítva: Feb 23, 2015
Na azt hiszem megvan a gond. Egy külföldi fórumon olvastam, hogy DCHxINT regiszterben lévő interrupt flageket is törölni kell megszakításkor. Persze az adatlapban erről nem láttam tájékoztatást, vagy nagyon elkerülte a figyelmemet. Az a tapasztalatom, hogy az új PIC-eknél nagyon hiányosak az infók. Már a dsPIC-eknél is sok ilyennel találkoztam, hogy 3 helyről kell összeszednem az adatot...
Na fiúk-lányok, az volt a gond, hogy amikor a PORTB-re "kiéseltem" az adatot, akkor előtte még az előző érték is benne volt, most jöttem rá hogy ez volt a gáz.
Szóval nem kell rajta agyalni, már rájöttem a dolog nyitjára )) Szóval most boldogság van.
Sziasztok!
Lehetséges valahogy debuggolni egy MikroC-ben megírt kódot PICKit 3 eszközzel? Köszönöm előre is a segítséget.
Na ugyan látszólag minden jól működik, azonban még mindíg gondom van a DMA-val. Mostmár átírtam a programot úgy, hogy egy tömből egy másikba másoljon a DMA, de nem másol. Pedig debug módban nézem, és a DMA pointerek is változnak úgy ahogy kell, ha elérte a buffer méretét, akkor jön a DMA megszakítás is, meg minden, de a cél tömb akkor is üres marad. Ha az eredeti felállásba az SPI teljesen random adatokat küldött, nem azt ami a bufferben volt. Olyan, mintha nem jól lenne beállítva a címezés. Órák óta próbálok rájönni, mi lehet, de semmit nem találok.
Az van, hogy ha a Data Memory ablakot megnézem, nem ugyan az szerepel a physical és a virtual memória címen. A physical memória címeken megtörténik a másolás, de a virtual memória címeken nem. Olyan, mintha nem ugyan oda mutatnának. Teljesen nem értem.
OKé, 3 órányi kutakodás után véletlenül megtaláltam a megoldást:
Bővebben: Link Hihetetlen, hogy egy ilyen lényeges információt így eldugnak. A végén elmegy a kedvem a PIC32-től teljesen...
Sziasztok. 16LF628A típusú kontrollert kellene felporgramoznom.
Ahogy nézem PICkit2 -vel nem kompatibilis, így más alternatív megoldáshoz kell nyúljak, vagy nem voltam elég körültekintő. Tud valaki erre valamilyen megoldást? "Ipari PC" -ről dolgozok amin LPT, RS232, USB -is van. A soros port szabványos, így a JDM barkácsprogramozó idegilenes jelleggel megoldásnak még megfelelne. Köszönöm a segítséget.
Az adatlap szerint mindössze a minimum tápfeszültségben tér el sima 16F628A-től. Próbáld meg azt beállítani.
|
Bejelentkezés
Hirdetés |