Fórum témák
» Több friss téma |
Igen egy picit ez is benne van hogy megtanuljam az "adatkommunikáciot" mert jelen pillanatban szinte semmit nem tudok rola! De szeretném megtanulni!
Elsö körbe "tervezek" 2 panelt, keresek egy 3 analogbemenetes picet bár pont nemrég az egyik ledesbe emlitettek egy 3 analogbe 3 pwm ki PIC- et És közbe probálom megérteni a szisztémát meg egy flow progit összerakni rà!
Szia !
Belefutottam egy problémába, PIC16F1936 ADC-t használok an0 és timer TMR0 Probléma, hogy az A4 portot bemenetnek használnám, de +5V van rajt és nem tudom beállítani i/o-nak Megtudnátok mondani hogyan lehet, már c blokkban irogattam ezt azt, de nem jó Köszi,
Üdvözletek!
A következő problémával zaklatnám a hozzáértőbbeket: 18f26k22, portok amik érintettek: B7-Output, B6-Output, B5-Analog input, B4-Analog input, B3- Output (többi B nincs bekötve). A jelenség: B7(és/vagy) B6, B3 -et 1-be teszem, majd olvasok B5 vagy B4 -en analog feszültséget, a kimeneteket lekapcsolja... Mit rontok el?
Lehet hogy feltennéd a progit akkor könnyebb lenne
Ha a lábat pl. 10 kOhm-mal lehúzod nullára, nem esik le a feszültsége? Esetleg láthatnánk a programot? Ha a programban lekérdezed a bemenetet, nem változik semmi?
Már lekopasztottam a progit, mire rájöttem, hogy az analog olvasás kapcsolja ki a két kimenetem a Bporton.
Jelen pillanatban már csak ennyi a progi, amit ideírtam. portB3 ->1 ; Read ADC An11 -en(B4) , adc-t kiolvassa és kikapcsolja a PortB3 -at...
Nem tudnád feltenni a progit
Valószínűleg az analóg bemenet olvasásakor a Flowcode átállítja a másik lábat is bemenetté, ez egy hiba lehet benne. Próbáld meg C kóddal kiolvasni az An11-et és ha azzal jól működik, már meg is vagy. Példa itt: Bővebben: Link.
Szerintem nem jól adja ki a jelet a B port-on, azért kérem a progit.
Sajnos a komplett progit nem tehetem "közkincsé". Viszont gyorsan összedobtam egy másikat, üreset, amiben felépítettem ugyanazt a makrót. Az MŰKÖDIK. Valószínű, megzavarodott a FC (nem ez az első eset), tekintve, hogy a problémás programban, az adc kiolvasása elé és után betettem 2 Sec késleltetést. Egyértelműen akkor kapcsol ki minden más kimenetet a porton, amikor adc-t olvas...
Bakman: Kössz a linket. Evvel kapcsolatosan lenne egy kérdésem, ezt írtad: "Flowcode-ban nem lehet megadni a belső referenciafeszültséget" a következő lépésben egy lithiumakkuról (is) működő órában kell 2,5V-os referenciát használnom. Amit írtál, ezek szerint engem is érint? Fizikailag összeállt a panel, csak felprogramozni nem tudtam még, a Vref-en van a 2,5V-os referencia, azt akkor a Fc alapból nem kezeli? A hozzászólás módosítva: Márc 15, 2016
Szia !
Valami nem kerek sajna, de már ezt a kész elektronikát nem tudom vizsgálni mert elvitték. Holnap előszedem a próba panelem és azon meg tudom nézni újra, ha előjön a hiba. De most nézem, rosszul írtam, nem +5V van a lábon hanem GND. A4 port kapcsolás ráeső része egy bemenet(pl:nyomógomb) ami alacsony szintre kapcsolna, felhúztam egy külső 10K-s ellenállással, azaz csak akartam, mert a 10K egyik felén 5V van a PIC felől meg 2.5V. folyamatosan olyan volt a bemenet mintha nyomtam volna a gombot. Ezért is mértem rá. Kivettem a programból mert jelenleg nincs rá szükség, csak meglepett... Lehet ott a gond, hogy a gomb változó alapértelmezésben 1 értéket adtam.
Idézet: Ezt felejtsd el ! A késleltetés ledvillogtatásra jó minden más esetben csak hibaforrás , az időzítéseket megszakításból kell lekezelni „2 Sec késleltetést” Idézet: „Valószínű, megzavarodott a FC (nem ez az első eset)” A flow csak azt csinálja amit te kérsz tőle ,tehát nem a program hibája ! A hozzászólás módosítva: Márc 16, 2016
Idézet: „Egyértelműen akkor kapcsol ki minden más kimenetet a porton, amikor adc-t olvas” Nem akkor amikor a késleltetés indul !Ugyanis a nop megállítja az egész programot !
Külső referencia feszültséget elméletileg tud kezelni, az ADC beállításaiban kell megadni. ha az nem működne megfelelően, akkor jöhet a C blokk.
Ha kiveszed a késleltetést, megszűnik a hiba?
A késleltetésnek (mindegy, meddig tart) nem szabadna kikapcsolnia a kimenetet, nálam ilyen még soha nem fordult elő.
A késleltetést csak azért tettem bele, hogy egyértelműsödjön, mikor kapcsolnak a kimenetek. Tehát csak a hibakeresés idejére.
" A flow csak azt csinálja amit te kérsz tőle ,tehát nem a program hibája " Ne haragudj, de ez nem igaz. 3 éve használom, többször előfordult már, áttekinthető, néhány elemből álló programoknál is, hogy egy egy "gyári" komponens makró betétele után rejtélyes hibákat produkált. Jellemzően pwm vagy ADC komponensekkel szokott gond lenni. Volt olyan 24J -s pic, (FC6, nem torrentes, hanem frankó), amiben az egyik pwm csatornát nem tudtam rendesen használni. C blokkban konfigurálva ment. Nem ragozom, de a vége az lett, Hogy a Benji nevű kolléga (MM) javított a makrón... Máskor egy üres projectben kellett újraírnom egy makrót, beimportálni, és úgy ment rendesen. Természetesen a makró ugyanúgy épült fel mint az, ami nem működött. Ha soha nem fordult volna elő, hogy a Fc a hibás, nem lenne bennem a kisördög, sőt, még most is úgy állok hozzá, hogy én rontok el valamit, ezért is kérdezek... A hozzászólás módosítva: Márc 16, 2016
Nem a késleltetés kapcsolja ki a portot, én ilyet nem mondtam! A késleltetés előtt tettem a port fent vázolt bitjeit 1- be, 2mp-re, aztán adc olvasás (itt ezek a bitek port 0-ba váltanak), adc olvasás után ismét 2 mp szünet, a portokat újból 1-be teszem, így tudom mérni, látni, hogy az adc olvasás kikapcsolja a fent leírt portokat....
"az adc kiolvasása elé és után betettem 2 Sec késleltetést. Egyértelműen akkor kapcsol ki minden más kimenetet a porton, amikor adc-t olvas..." A hozzászólás módosítva: Márc 16, 2016
Nem ismerem a Flowcod-ot, esetleg nem lehet az AD konfigurációs regiszterekbe (ADCON) közvetlenül írni? Mert ott kiválasztanád melyek az AD bemenetek.
Én sem írtam ilyet. Próbáld ki a C blokkos ADC mérést, egy példát linkeltem.
Sziasztok. Kérdeznék újból egyet.
Összeraktam teljesen az órát. De teszteléskor nagyobb sebességet fordulatot mért a program mint kellett volna. Majd egy hét után, ma kiderült, hogy: Ha a háttérvilágítás fényerőszabályzáskor elindul a PWM, akkor az órajel teljesen elmászik. PL. ha 1.8kHz körül van beállítva a pwm(0) akkor pontosan 1.7 szeres szorzóval méri a sebességet és a fordulatot is. Ha 5kHz akkor csökkenti de nagyon. A picbe írtam egy teszt "üzemóra" részt. Kiír másodperc, perc óra. stb.. És stopperrel mérve alap esetben normális (nyilván kis eltéréssel, mert nem órajel kvarc, sem a program nem úgy van írva, hogy ez legyen a fő feladat. de aránylag elfogadható, stopper órához képest. Ha elindul a pwm, akkor a másodperc számláló felgyorsul, kisebb khz esetén kicsivel, nagyobb khz esetén kb század másodperceket mér. Ha kikapcsolom a pwm-et és újra indítom az egészet, akkor megint jól mér. A programnak két állása van. Egyik esetben ha max a fényerő, akkor a pwm kimenetet kikapcsolja és direkt kimenetként bekapcsolja az optocsatolót, ami vezérli a 12V on aksiról tápot kapó ledeket. Ha a fényerőt csökkentem, akkor kikapcsolja a kimenetet, bekapcsolja a PWM-et és beállítható értékkel szabályozza a fényerőt. A pwm lábról közvetlen megy az optocsatolóra egy rövid vezeték. Nincs a kvarc vagy a pic közelében. Ötlet? Amúgy ha direkt pwm a kimenet akkor hibátlan minden, csak hát ez bosszantó.. A hozzászólás módosítva: Márc 19, 2016
A PWM általában a Timer2-t használja, lásd melléklet. Ha a Timer2-t és a PWM-et egyszerre használod, jönnek elő ilyen "hibák". Ha a kontroller tudja, másik időzítőt hazsnálj vagy a PWM-re, vagy a másik dologra, amire a Timer2-t.
Köszi.
Ez nem is néztem az adatlapban. Igen a Timer2-t használom, mert abban pontos osztást tudok beállítani. Most 2000Hz re van állítva, és 200as számlálóval pontos 100ms az idő. Átrakom a régi Timer0-ra. Ott 1220,xx hz volt 122-es számlálóval. Ez nem F1 autó, így nem fog annyit számítani az eltérés. Bár ha van tipp, ugyan ilyen pontos beállításra, akkor megköszönöm. 18F4620 pic.
Mi megy a PWM-ről? Ha más nem is, azt esetleg szoftveres PWM-mel helyettesíteni.
Az egész háttér világítása.
Azért lenne jó ha lenne, mert régen pillanat pákával(csak azom volt) forrasztott smd-ledek vesztettek az erejükből sokat és nem volt zavaró este a fényerő. (60db led) Nappal teli fénnyel mehet most is, de tegnap este próbáltam, és a mostani "smd" pákával forrasztott ledek fénye kiviszi a szemem. Pedig ugyan azon előtét ellenállásérték és 14.7V a táp. Régen kb fele ekkora volt a fényerő. Tegnap nagyon néztek a lámpánál, mitől van kék fejű ember a kocsiban. Most próbálok egyet, TMR0 val. Ha nincs eltérés lényegében sok, akkor nem írok szoftveres PWM-et hozzá. Csak helyet foglal. (Ez azért nem űrtechnika a kocsiban)
Megoldódott Timer0-val.
Már csak újra kell vezetékezni az AD bemenetekre a hőmérőt és a benzinszintmérőt. Elég sokat ingadozik, holott eddig atom stabil volt. Mivel ülés alól a alaplap is felkerült az órába, műszerfalba, így a vezetékezés árnyékolt hiányában, sima vezeték lett egyelőre
Vissza kerestem pár oldalnyit és láttam páran használtatok sd kártyát pic-el.
Egy hónapja csináltam egy kis nyákot hozzá, igaz ez microSD kártyához van. Ma volt időm próbálgatni, de nem igazán működött. (mmc.jpg) A másik kép az ami alapján csináltam. Csak az ellenállásokat cseréltem, mert így 3.2V és nem 3V lesz a lábakon, legalábbis osztószámolgatás alapján. ( a táp lábon egy LD1117-33c adja a 3.3V-ot a kártyának, és ez méréskor is ennyi.) A gyári mintaprogrammal próbáltam, egy szöveget beírni a fileba. Példaprogramok közt van. hardveres és szoftveres FAT komponens beállítással is (5.4es flowcode) 18F4620as pic. ( az órát használom hardvernek, későbbi terv miatt, az spi RC 3,4,5 és CS (RC6 nálam) láb kivezetve.) 20Mhz-es kvarc
Sziasztok!
ilyen Vagy ehhez hasonlo kijelzőt szeretnék PIC el hajtani! Autoba lenne kiegészitő müszer. Volt vizhőfok olajhőfok értéket mutatna... tulajdon képpen egyedül azért néztem ezeket hogy piktogramokat lehessen rakni az érték elé meg hog animàlni lehessen! A flow képest ezt kezelni? Hogy àlljak neki szerintetek? Nem nagyon találok cikkeket se rola
Igen, lehet kezelni. A 6-os alapból ismeri, az 5-ös verzóban kicsit macerásabb, de nem lehetetlen: Bővebben: Link. Azt viszont vedd figyelembe, hogy ez egy nagyon pici kijelző.
Nagyot!
Watchdog kérdés. PIC18F14K22, WDT 1:128 -ra állítva kb. 0,6-0,8 másodperces periódussal újraindítja a kontrollert. Eddig jó. 1:256 -ra állítva, öt perc alatt sem indul újra. Nem jól gondolom, hogy az előző időt dupláznia kellene? Mellékletben a program. UART-on fogadja egy GPS modul jelét és jeleníti meg a kijelzőn.
Hello mindenki. Hol van a hiba?
A kis kártyatartó rossz volt. Közben megtaláltam, hogy a microSD kártya lábkiosztása más. Így átalakítottam. CLK, Din, Dout, VDD, GND, CS lábak jó helyen legyenek. Lecseréltem 2.2K és 3.3K ellenállásokra a régieket. A Vdd most 3.29V. A Din és CS lábon 2.98V mértem. a kártya 2GB-os Fat16-ra formázva. 18F4620 as pic és 20MHz a kvartz A program lefut szimulációkor. De betöltve picbe megakad a Fat Init nél. Vár az SD kártyára üzenetnél. A program alap példa program. |
Bejelentkezés
Hirdetés |