Fórum témák
» Több friss téma |
Sziasztok!
Van egy Pic16c72A mikrovezérlős UTH-EU-01 termosztátom ami elektromos padlófűtésé volt. Szeretném átalakítani, hogy a bekapcsolási hőmérséklet érték magasabb a kikapcsolási érték alacsonyabb legyen. Van Pickit2-őm tehát le tudom szedni a fimware-t róla, és megnézni a programját. Jelenleg még nem tettem meg. Mire figyeljek, és majd a programot hogyan módosítsam? Sörkollektor vezérlőt szeretnék csinálni belőle.
Szia!
Elkeserítő híreim vannak: - A 16C72A csak egyszer programozható, hacsak nem ablakos kerámia tokban van, - Rendelkezik egy kiolvasás elleni védelemmel, ha aktív nem tudd belőle kiolvasni a programot, csak az egészet törölni. Azt is csak akkor, ha ablakos a tokja, - A PICKit2 nem kezeli a 16C verziókat, mert nincs elég árama a Vdd ill a Vpp meghajtására.
Sziasztok!
Valaki használja a MikroC Pro programot? Akármilyen tesztprogramot írok bele, nem működik. Az első hiba, hogy a #include "pic16f628a.h" sorban nem találja "pic16f628a.h" filet. Letöltöttem neten, de hibába másolom be, vagy adom a project-hez, nem tetszik neki. Meg tudná mondani valaki, hogy kell ezt? Köszi!
Kiegészítés: Csak lejárt az időm
Most olvasom ezeket a fenti "aranyszabályokat". Ezek minden PICre, minden esetben igazak? Csak mert nem láttam még kapcs rajzon sehol ezt a 100nF-os KERÁMIA kondenzátorokat, sem a MCLR és VDD lábakat 100 Kohmmal kötni. Szóval ez amolyan kötelező dolog?
Igen, ezek azok. Sőt a 100nF kondi az minden gyors működésű digitális IC táplábára kell!
A MicroC-nek van saját topicja. (Így keresd: mikró C-ben)
Szia!
A kapcsolási rajza majdnem teljesen megegyezik a PICKit2 User's guide -ban megtalálhatóval. A módosíításokat leírtam a cikkben. A cikkben közölt kapcsolás csak annyiban tér el ettől, hogy a huzalozás könnyítése érdekében Q2, Q3, Q5 BC557 lett. A furatszerelt klón panelje elkészíthető egyoldalas kivitelben is - ekkor van rajta 5 db átkötés. A további részletek a PICKit2 klón építése topikban.
Köszönöm a választ, keresem a fórumot (ez eszembe se jutott)
Az innen-onnan felcsipegetett részletek alapján összeraktam egy IC tesztert. Ha tudnátok időt szánni rá, hogy átnézzétek, azt megköszönném. Bármilyen kritikát szívesen fogadok.
A könnyebb értelmezéshez: U6A és a kimenetére kapcsolódó áramkörök a 14, 16, 20 és 24 lábú IC-k tápfeszültségét kapcsolják a teszt foglalatra, illetve erről egy vizuális visszajelzést adnak; U2, U3, U4, U6B, U8, U10 a háromállapotú kimenetek ellenőrzésére szolgál illetve az előbbi tápfeszek kapcsolását vezérli; U7 és ami mögötte van: soros LCD kijelző meghajtás. U8 és U10 azért van külön tokban, mert ilyen IC-k vannak otthon, felesleges lenne venni emiatt egy tárolós léptetőregisztert.
Sziasztok!
Segitsetek légyszives hogy miért nem tudok átváltani a 2 funkcio (nyomogomb/kapcsolo) a letárolt számjegy szerint. A tárolás jo, látom hogy benne van. lfsr 0,203h MOVF INDF0,W MOVWF REG1 MOVLW 30H ;0 cpfseq REG1 BRA NEMNULLAVOLT BRA KAPCSOLO NEMNULLAVOLT MOVLW 31H ;1 cpfseq REG1 RETURN BRA NYOMOGOMB
Ezt a projektet megszeretnem valositani , mar egy ideje gondolkodom azon hogy hogy lehetne atirni azokat a szovegeket belole . Mivel van vagy 15 mondat amit kitud irni , es en mit kene a forras faljban megvaltoztatnom hogy azt irja ki amit en akarok ?
Itt az oldal : Air Display ( PIC ) Elore is koszonom a valaszotokat
Click HERE to see the Algorithm Sorry, no longer available .... De egy jóravaló disassembler segíthet...
Szia!
Köszi, úgy látom meg tudom vele nyitni a fájlt! Steve
Szia!
- Vannak olyan áramkörök, aminek nem a két "szélén" van a táp és a föld csatlakozás: 7490 .. 7493, - Az I2C busz SCL és SDA lábát a tápra kell húzni 2k7 ellenállásokkal, - A 16F877 A/D átalapítójának leírását nézd meg! Jobb lenne 16F887 -et használni, ott lábanként állítható az analóg mód. Idézet: „Vannak olyan áramkörök, aminek nem a két "szélén" van a táp és a föld csatlakozás: 7490 .. 7493” Jogos az észrevétel, az ilyen "anomáliákat" viszont remekül lehet kezelni adapterek használatával. Idézet: „Az I2C busz SCL és SDA lábát a tápra kell húzni 2k7 ellenállásokkal” Köszönöm, módosítom a rajzot. Idézet: „A 16F877 A/D átalapítójának leírását nézd meg! Jobb lenne 16F887 -et használni, ott lábanként állítható az analóg mód.” Nem teljesen világos, mire gondolsz. A 877-ben 8 csatornás A/D van, a 887-ben 14 csatornás, de egyiket se lehet akármelyik lábra konfigurálni. Konkrétan melyik részét kellene olvasnom az A/D leírásnak? Mert már többször is átfutottam, a programozás része meg majd úgyis csak akkor lesz fontos, ha már a kódot írom. Az adatlapon szerepel ez: "The maximum recommended impedance for analog sources is 2.5 kOhm" Ha jól értem, akkor ez a 11.2-es ábrán az Rs maximális értéke. De ez egy soros ellenállás, tehát ez engem nem érint, ugye?
Szia!
16F877: DS30292C-page 112 vagy 16F877A: DS39582B-page 128 a 16F887: DS41291F-page 40, page 48 oldalaival szemben. Idézet a 16F887 adatlapjából: Idézet: „Pins configured as analog inputs will read 0.” A 16F877 és 16F877A típusokon is így van.
OK, leesett, nagyot koppant , köszönet érte.
Tehát ha jól értem, ha pl. a 6 db. A/D bemenet / 0 db. referencia bement lehetőséget konfigurálom, akkor ugye AN0...AN5 fog 0-t adni olvasáskor. De ha teszem azt, AN1...AN4-et kimenetnek konfigurálom, és az A portot egész byte kiírásával kezelem, akkor a PIC lábai ugyanúgy működnek, mintha normál A/D nélküli kimenetek lennének? A read-modify-write módszer csak a bitenként írásnál zavar(na) be?
Szia!
Ahhoz, hogy a AI és KBD vonalakat analógként kezeld, a 16F877(A) -n az RE1, RE0, RA5, RA3..RA0 lábaknak is analógnak kell lenniük. Ha egy láb analóg, akkor a PORT olvasásakor 0-t ad. Ez a RMW műveleteknél hibás eredményre vezet. RMW művelet a portról előbb olvas, végrehajtja a műveletet és az eredményt visszaírja. Pl. bsf, bcf, addwf ...,f, incf PORTA,f, decf PORTA,f, stb. A clrf PORTA, és a movwf PORTA működik. Kell tartani a RAM -ban egy másolatot a PORTA -ra kiküldött adatról, azon végezni a műveletet, az új tartalmat (a megszakítást letiltva) másolni a PORTA -ra. Ha egyes, analóg módra állított lábnál digitális kimenetet állítasz be, a kimenet feszültsége kijut a lábra, de nem tudod visszaolvasni. Egyszerűbb az élet 16F887 -tel (ANSEL regiszterekkel lábanként lehet állítani az analóg módot), vagy még egyszerűbb 16F1937, 16F1939 (ANSEL regiszterekkel lábanként lehet állítani az analóg módot, LAT regiszterek elérhetők), vagy 18F4520, 18F4620 kontrollerekkel, ahol a LATA regiszter is elérhető (az A/D beállítás ezeknél sem lábanként megy).
Köszönöm, így már minden világos.
Közben az egyik shift regiszter elhagyásával keletkezett 2 szabad láb, így a PIC lábkiosztásának átrendezésével megoldottam azt, hogy a KBD az AN0-ra került, az AI pedig az AN1-re. Utóbbit még pluszban rákötöttem az RA4-re is, mivel ez egy Schmitt-triggeres bemenet, és nem mellesleg számlálóval is összeköthető, amiből ráadásul megszakítást is lehet aktiválni, és ez még jól jöhet a program írásakor. Így elég lesz külső referencia nélküli háromcsatornásra konfigurálni az A/D konvertert, és a 3. csatorna szabadon maradhat, mivel nem lesz rá szükség.
Sziasztok
24L01A eepromot nem támogat PK2, új fw esetén esélyes, hogy tudjam kezelni? Üdv
Köszönöm, ki fogom próbálni.
Üdv
Sziasztok,
Van egy kis problémám egy 16LF648A val. A benne lévő kódot nem lehet sem felülírni sem törölni. Törlés után is "0000" értékeket olvasok vissza a programozóval (PicKit2). Ha felül akarom írni akkor pedig betöltődik a kód, de az ellenőrzésnél: "Programming failed at Programming Memory address 0x000000" Mi lehet a gond és mi a megoldás..? Kontroller csere..?
Szia
Próbáld meg külső 5v megtápálással, valószínűleg kevés a fesz. Üdv
Szia, sajnos ez sem jön be.
Köszi
Nem az ,hogy védet programot tetél rá . Azt nem tudod viszaovasni mert 00000000 ir ki .
Szia!
Vdd = 5.00V mellett töröld (Erase). Lépj ki a programból. Indítsd el újra. Olvasd ki (Read). Most üresnek kellene lennie (0x3FFF a program, 0xFF az adatmemóriában). Töltsd be a programodat. Megjelenik egy piros ... protect felirat? Programozd be. Sikeres? Ha nincs piros felirat, akkor lehet ellenőrizni, ha a piros felirat megjelent, akkor az ellenőrzés már nem lehetséges a védelem miatt.
Sziasztok!
Már van egy működő, virtuális COM porton keresztül kommunikáló projektem 18F4550-el. Gyakorlatilag a Basic CDC demo-t valósítottam meg, fogadja az adatokat, és visszaküldi USB-n. De most a main függvényben a while hurok így néz ki: while(1){ c=usb_cdc_getc(); printf("Received character: %c = %d\n",c); } Azt szeretném megoldani hogy az adatok küldésén és fogadásán kívül a program tudjon mást is, pl. ellenőrizni egy nyomógomb állapotát, és az alapján csinálni valamit. Próbáltam így átalakítani a while hurkot: while(1){ if(usb_cdc_kbhit()) { c=usb_cdc_getc(); printf("Received character: %c = %d\n",c); } if(!Button) doSomething(); } De nagyon nem azt csinálja amit kellene. Valaki tudna segíteni, hogy ezt hogy kellene megoldani? Egy másik kérdés még: a ProcessIO()-t mikor kell meghívni? Segítségeteket előre is köszönöm! Marci
Igen mindig piros felirat van bármit csinálok, egyszerűen lehetetlen törölni vagy felülírni. "Erase", vagy Write".. ..megcsinálja. Az adatmemória védelem a kódban nincs is beállítva a konfigurációs szavaknál, manuálisan raktam rá a programból az írás előtt. Ha visszaolvasom "0000" mindenhol (az EEpromnál nem , annál nem volt bekapcsolva a védelem) , ha közben újraindítom a programot akkor sem változik semmi. Mindegy hogy ott a piros felirat vagy sem...hogyan állítom be törlés vagy felülírás előtt. Kínomban a Pic et kicseréltem...most jó. A másikkal nem tudom mi a bánat történhetett...kuka lett a vége.
Köszi |
Bejelentkezés
Hirdetés |