Fórum témák
» Több friss téma |
Szia!
Még a WatchDog megy, de lehet, hogy ez ébresztgetné a SLEEP-ből ( az idézet program alapján felesleges!), ill. altatásnál figyelj a perifériák állapotára ! A hozzászólás módosítva: Nov 7, 2016
Sleep állapotban a 20 uA picit soknak tűnik, max. 3 uA körül kellene lennie, leglábbis nekem 16F886-nál 3V-os elemről, nálam sleepnél csak a Timer1 megy külső kavicsról.
Az alvás alatt vedd le az órajelet a minimumra. Utána persze várni kell, amíg beáll.
A hozzászólás módosítva: Nov 7, 2016
Egy szóval se mondtam, hogy a PIC el pont ugyanolyan izzítást szeretnénk elérni,
mint amit a vezérlő több paraméter alapján létrehoz. Olyan egyszerű megoldás is megfelel a tulajnak, hogy be tudja indítani az autóját a télen, ha már kicseréltette az összes izz.gyertyát. Erre kérném mi lenne a legegyszerűbb PIC program ? Táp megvan PIC start egy kiszemelt portkivezetésen 5V jel és 30sec után e portkivezetés nullázza a jelet és alvás. Kössz Esetleg felteszek egy kapcsolót, amivel az izzítás opcionális. Idézet: Ezt pont így tudod megoldani. Mi a kérdés? „Táp megvan PIC start egy kiszemelt portkivezetésen 5V jel és 30sec után e portkivezetés nullázza a jelet és alvás.”
Hát hogy programilag, hogy nézne ki ez egy 16F84A vagy 16C711
esetleg 18F26K22 (,de ezt végszükségben áldoznám erre). komplett hex , assembler oké , C+ momentán nincs telepítve. Kössz.
Egy 30mp-s időzítéshez teljesen fölösleges 16f,18f, erre akár egy filléres 12f is megfelelne.
Még halál pontos időzítés se kelhet neked, bőven elég a belső oszcillátora is. Vagy ezt szerintem még egy sima 555-el is meg lehetne valósítani. A hozzászólás módosítva: Nov 8, 2016
Hát igen, az 555 kb tizedébe kerül mint a legolcsóbb pic.
Kell ugyan még pár alkatrész köré, de akkor is olcsóbb. Viszont eszembe jutott pár dolog. Gyenge akkumulátorral ugrál a tápfesz, ehhez kellhet mindkettőhöz egy tápegység IC, a PIC-nek mindenképp, az 555 talán elmenne egy dióda + elkó leválasztással. Ha kellene hőmérsékletfüggés, azt is meg lehet mindkettővel csinálni, talán az 555-tel egyszerűbben. Mindkettőnek a kimenetére kell valami meghajtó ha relét kapcsol. A PIC-nek nincs sok előnye, talán csak akkor, ha az ismételt izzítást mondjuk 1 percig le akarod tiltani. Ja és a PIC nagyobb kihívás ![]()
Sajnos attól, hogy kiírjuk azt, hogy PIC attól még ez a téma igencsak off ehhez a topichoz és seggbe fognak ezért billenteni minket
![]() Én már az elején se igazán értettem a kérdezőt, hogy neki elég csak egy sima időzítő ami 30mp után lekapcsolja a kimenetet. Igen sok kérdés felmerül itt mint például amit te is írtál. Idézet: „A PIC-nek nincs sok előnye, talán csak akkor, ha az ismételt izzítást mondjuk 1 percig le akarod tiltani. Ja és a PIC nagyobb kihívás” Az ősrégi izzító relék se izzítottak 2x ugyan annyi ideig mint pl hideg motornál. Ha már egyszer izzított pl 20mp-ig akkor egy gyors gyújtás levétel és ismételt gyújtás ráadás esetén már nem izzított annyi ideig és mivel ezt a motort már ECU vezérli itt már sok minden befolyásolja az izzítását is. Én azért is írtam azt amit mert semmi értelmét nem látom egy ilyen motornál, hogy minden egyes indítás előtt legyen az hideg vagy meleg motor, hogy 30mp-ig kínozza szerencsétlen gyertyákat főleg, hogy üzem meleg motornál semmi értelmét nem látom egy 30mp-ig tartó izzításnak. Idézet: „Olyan egyszerű megoldás is megfelel a tulajnak, hogy be tudja indítani az autóját a télen, ha már kicseréltette az összes izz.gyertyát.” Ehhez csak annyi a véleményem, hogy ha már kicserélte az összes izzító gyertyát akkor nem kéne megölni őket egy sokszor feleslegesnek tartott 30mp-s izzítással. Kössél be egy nyomógombot amit ha megnyom akkor megy az izzítás, ennek még mindig több értelmét látom mint az időzítésnek.
Hát... PIC10F200 kb. 170 Ft, NE555 kb. 50 Ft, a PIC-nek elég egy zener és egy ellenállás tápként, utána már jöhet a kimenet, az 555-nek pár darab ellenállás és kondi + kimenet! Szükség esetén a PIC-nek csak programmódosítás, 555-nél hardver módosítás...Igaz, hogy a PIC-re programot kell írni, de ha ez nem gond, akkor szerintem nem kérdés
![]()
Ehhez valóban elég lenne egy kisebb PIC is, de ha ragaszkodsz ezekhez a 16F84A-ra megírom neked.
A hozzászólás módosítva: Nov 8, 2016
A vélemények olvasása alapján megtudnád úgy írni a programot,
hogy figyeljen egy porton, hogy érkezik e egy pillanatnyi letestelés (nyomogomb adná) és ha igen majd elengedtem a gombot akkor 30sec es izzítást célozva egy porton 5Vra fel majd, ha letellik le. Ne a táp megérkezését figyelje, hanem a nyomogomb hatását csak. Nagyon megköszönném. Nem pesten vagyok itthoni cuccokból, ami nem kell megoldanám költséghatékonyabban.
Persze. Akkor legyen a PIC16F84A. Ebben nincs belső oszcillátor, mekkora kvarcot teszel mellé?
kissi, Pali79, nedudgi,
köszönöm a tippeket! A kimenetek szabadon, a bemenetek L szinten, a perifériák kikapcsolva, a táp 5V. Továbbra is 20 mikroamper SLEEP-ben, amit a WDT fog ébresztgetni, de WDT nélkül is annyi. 31KHz-től 32 MHz-ig mindent próbáltam, de hatására csak éber állapotban változik az áramfelvétel.
Sziasztok!
Egy picit elakadtam, és a segítségeteket szeretném kérni. Van egy PIC18F26K22-esem, meg egy xc8 fordítóm, meg egy ilyen kódom:
Minden próbálkozásom, és google barátom ellenére nem sikerült életet lehelnem az UART-ba, viszont arra már rájöttem, hogy a gondot az okozhatja, hogy valamit rosszul állítok be, mert a Busy2USART függvényben az első elküldött bájt után kiakad (pontosabban a while(Busy2USART()); ciklus végtelennek tűnik), valamint amikor rámértem a PICkit 2 Logic tool-jával, akkor a TX2 lábán egy kb 37 kHz-es órajelet kapok (Ld.: melléklet). És ez számomra érthetetlen. Valaki esetleg fel tudná hívni a figyelmemet arra, hogy ezt miért produkálja a chip? Előre is köszönöm! ![]() A hozzászólás módosítva: Nov 8, 2016
Idézet: Ez mit is jelent pontosan? A kimenetnek törölni kell sleep előtt. Ha csak ennyi a program tedd fel a hex-et, megnézem valamikor. Lehet valami disznóságot fordít bele. „A kimenetek szabadon”
Nézd meg (töltsd fel) a disassembly ablakban, mit fordít a könyvtári függvényekből.
Ezt pontosan hol is tudom megnézni?
MpLab8: View / Disassembly Listing
MpLabX: pass
No igen... MpLabX-em van
![]()
MPLABX: Window->Debugging->Output->Disassembly Listing File
Szia!
Most néztem meg az adatlapját ![]() WDT-vel 20 uA, de ha PIC12F1822 helyett PIC12LF1822-t tennél bele, akkor 1 uA alatt lennél WDT mellett ![]() szerk.: 390.oldal Bővebben: Link A hozzászólás módosítva: Nov 8, 2016
Ezekből nem igazán derült ki számomra semmi.
Valakinek egyébként van ötlete arra, hogy hogyan lehet életet lehelni az uartba ennél a procinál?
Úgy értem a szabadon-t, hogy nincs rákötve semmi. Mellékeltem az lst fájlt is.
Nem tűnik problémásnak.
Pali Itthon 4Mhz van csak. Azzal megtudod ? Kössz
A válaszaidból nem tudunk semilyen információt sem kihámozni.....
Máskép teszem fel a kérdést: Milyen érték kerül a RCSTA2 regiszterbe? Az aszinkron mód TX láb (RB6) szinkron módban pontosan a CK2 azaz a szinkron órajel... Az adatlap Table 16-3 táblázata szerint szinkron módban az órajel Fosc / (4*(n+1)) frekvenciájú: 20 000 000 / (4 * (129 + 1)) = 5 000 000 / 130 = 38461,538461538461538461538461538 [Hz] A hozzászólás módosítva: Nov 8, 2016
Persze, igazából mindegy csak tudjam, mert abból kell számolni.
Nem sikerült sok mindent kihalásznom belőle, konkrétan semmit, mert ennyire nem értek hozzá, de csatolom mellékletbe, hátha ti jobban értitek...
Apropó... Azt hiszem, hogy azt még nem említettem, hogy aszinkron módban szeretném használni az UART-ot. A hozzászólás módosítva: Nov 8, 2016
Végül sikerült megoldani úgy, hogy kiiktattam az usart library-t és megírtam a beállítást regiszterek állítgatásával...
![]() Ha esetleg valakinek egyszer szüksége lenne a kódra:
Dicséretes lépés!
![]() Ugyanis ha nem ismerjük milyen kódot fordít az előre megírt függvénykönyvtár, nem tudjuk rendesen használni.... Az a bizonyos kutya itt van elhantolva:
A logikai vagy műveletek eredménye 0xFF lett, amit a fordító egy SETF config, ACCESS utasítással el is intéz. ![]() ![]() Az a gyanúm, hogy és maszkok vannak definiálva:
lenne a helyes megoldás A hozzászólás módosítva: Nov 8, 2016
|
Bejelentkezés
Hirdetés |