Fórum témák
» Több friss téma |
Félreértettelek, azt hittem a bemeneti lábakra is raktál LED-eket !
Nem ismerem az adott PIC-et, de ez akár RMW ( Read-Modify -Write ) probléma is lehet ! A LED-ek állapotát egy shadow regiszterben szerkeszd és a lekérdezések után írd ki a shadow tartalmát a PORTA-ra EGYBEN !
Furi egy fordítód van, ha így eszi meg... én azért ellenőrizném mire fordul le.
Nálam 16f18876 XC8 fordítóban így van a programomban a definició: #define FOTO_BELSO RC5 //Fot2 (foto belső) (+5V) //FOTOCELLA BEMENET, #define TESTLAB2 LATD4
Nem Microchip fordítót használ hanem Mikroelektronika MikroC PRO for PIC -et.
A hozzászólás módosítva: Nov 17, 2019
Miért van engedélyezve a Clock out enabled ?
Az tolja ki az órajelet ... tiltsd le.
Letiltottam, viszont az RA4-en továbbra is látok órajelszerűséget, RA5-ön semmit, annak ellenére, hogy bemenetnek lett átkapcsolva. Nem értem én ezt
A CONFIG1-ben a ~CLKOUTEN bitet 1-be kellene állítani.
Sajnos akárhogy állítok akármit, ami ezzel összefüggésben lehet, egyszerűen nem változik semmi.
RA5-ön semmi nem jön ki, RA4-en pedig mindig mérhető feszültség, akár kimenetként, akár bemenetként próbálom életre bírni mindkét lábat. Mintha fixen clkout lenne az RA4. Ez lehet a fordító hibája/kinyírt PIC? A hozzászólás módosítva: Nov 22, 2019
PIC16F1825: Config1 = 0x21A4, Config2 = 0x1413
Ekkor kell elővenni az adatlapot, felkeresni a konfigurációs regiszterek leírását: (ld. melléklet) CONFIG1: bit11: CLOCKOUTEN (felülhúzott fonttal): Ha FOSC XT, LP vagy HS - nem érdekes, egyéb módnál 0 értéke engedélyezi a CLKUOT funkciót a CLKUOT (RA4) lábon. FOSC = 4 az INTOSC oszcillátor, I/O functió a CLKIN lábon. Azaz nem XT, LP vagy HS mód. 0x21A4 = 0b 10 0001 1010 0100 Ebben az értékben a 11. bit 0, azaz a CLOCKUOT funkció engedélyezett. A 0x29A4 pedig letiltaná. A hozzászólás módosítva: Nov 22, 2019
Köszi
MikroC PRO for PIC 7.1.0-t használok, itt ezeket az "edit project"-en belül állítom. Esetleg ezeket szövegesen hogyan tudom megadni? Bárhogyan próbáltam a kódba beírni, nem működik úgy, mint a többi regiszternél.
Mikroban nem lehet a configot állítani kóddal ,csak a saját kis beállítójával .
Annyit tehetsz,hogy debug mód(ha van olyan) ,és megnézni,hogy miket állított be.
Hp41C leírta, hol hibázik a feljesztőkörnyezet.
0x21A4 helyett 0x29A4 kellene. A szöveges beállítás (Clock Out Enable) látszólag jó, de a bitet nem írja át vagy éppen fordítva működik, Enable-re kellene állítani.
Köszönöm ezt a sok segítő hozzászólást!
Sajnos utánaolvastam én is, a config1 értékét nem lehet programkódban módosítani, csak az edit projecten belül. Ott a clock out enable-t próbáltam már mindkét állásban, sajnos érdemi változást nem tapasztalok.
Ha a "Clock Out Enable" opciót váltogatod, változik a "Configuration Registers" ablakban lévő valamelyik hexadecimális szám?
Igen.
Clock out enable engedélyezve:
letiltva:
Ha a power on timert letiltom még, akkor kijön config1-re a 0x29A4
Mellékletben egy hex fájl, ezt töltsd fel a PIC-re, ennek mennie kell. Az általad megosztott programot (Bővebben: Link) készítettem el Flowcode-ban, egy-két módosítással. A program 100 ms-os várakozással kezdődik és a belső órajel frekvenciáját 500 kHz-en hagytam.
Ugyanaz történik, annyi változással, hogy a ledek sorrendje megfordult.
Akkkor már csak a HW hiba marad (PIC vagy valahol máshol), nálam működik.
Waa.... találtam még egy ilyen PIC-et a fiók mélyén, azzal tökéletesen működik mindkettőnk kódja. Nem tudom, hol sérülhetett ez meg, ilyen hibával még nem találkoztam.
Mindenesetre köszönöm a sok segítséget és hibakeresést mindenkinek!
Üdv mindenkinek!
Meglepő és érdekes jelenséggel küzdök már hetek óta. Az LCD kijelzőm (i2C) 3-5 perc normál műküdés után megzavarodik, és mindenféle random karaktereket írkál ki. Sajnos nem tudom pontosabban megfogalmazni. Először hardver hibára gyanakodtam, de a jelenség meg van proteusban is. Segítsetek! Merre induljak el??? A fordító semmi hibát nem jelez, minden megy annak a rendje szerint, a program elindul, fut de néhány perc elteltével az LCD megzavarodik, és csak a reset segít rajta.
Ha szimulációban is látszik, akkor SW hiba. Attól mert a szintaktika jó, még lehet hiba bárhol, pl. folyamatosan növelsz egy változót, az meg túlcsordul egy idő után.
Tegyél rá egy logikai analizátort. Ha azzal is látszik miket küld a kijelzőnek és mikor, akkor már csak az okát kell megfejteni.
Erre már gondoltam, de akkor viszonylag rendszeresen jelentlezne a jelenség, de abszolute random.
Én is gyanítom hogy valami sw hiba, de nem tudom szándékosan reprodukálni. Vagy történik vagy nem. Van hogy fél óráig is elmegy a szimulátor, aztán kimegyek és mire visszeérek már megint nem jó. Melyik részeket cseréljem nle? i2c? LCD? Init?
Üdv!
Frekvencia mérésre mi a leg célszerűbb/pontosabb mód egy 16 bites PIC mikroprocesszorral? (kHz nagyságrend) Köszi!
Szia!
A legegyszerűbb ,hogy beállítasz 1 timert 1,10,100ms -ra,és megszakítással számolod a bejövő frekit.Amint lejár a timer abból megvan ,hogy adott idő alatt mennyi jött be,és átszámolod. Ha nem szeretnél számolni,és nem fontos,hogy sűrűn legyen mérésed,akkor a timert belövöd 1s-re,és meg is van a freki . A pontosságot külső referencia-frekivel tudod a legpontosabbá tenni,bár itt annyira nem fontos.
Erre gondoltam én is, csak nem voltam biztos benne hogy elég pontos lenne.
Köszönöm!
Én valamelyik timer-re bíznám a számolást. Ha a pic tudja (kapuidő) egy másik timer kimenetét egy lábon kiadva akkor ezzel lehetne kapuzni a bejövő jelet. De lehet van belsőleg kapuzható cucc is a picben. A picet meg tcxo oszciról járatni.
Köszi a választ!
Sziasztok!
Számtalan kísérlet után arra jutottam hogy a hibát az I2C okozza. Valami oknál fogva nem fér össze egy buszon az LCD és a DS1307. Ha valaki érez magában indíttatást és kellő idővel rendelkezik hogy megfejtse a problémát szivesen elküldöm a forrást. Én már a szemeimet kinéztem, de nem látok benne semmit, és a microchip-ről sem feltételezem hogy hibásanadták volna ki, tehát valahol az én driveremben van a hiba. Ha az RTCnincs belefordítva napokig képes hiba nélkül futni, de az RTC-t nem tűri a proteus sem. 1-2 perc és lehal, tehát valószínű program hiba, de hogy hol??? Amíg ez nem megy nem tudok tovább lépni, pedig annak terveim az AM2320-al (fejlesztés alatt, még nincs belefordítva) és a terv szerint lenne még egy eeprom is a buszon.... Az MCC által generált I2C driverre építenék, bár nekem még kissé futurisztikus pedig a már most is elavulltnak kikiáltott MSSP1 PIC10/PIC12/PIC16/PIC18 libet használnám.
Láthatjuk a kapcsolási rajzot és a kódot?
|
Bejelentkezés
Hirdetés |