Fórum témák
» Több friss téma |
Belső oszcillátornál általában a programban a belső órajelet definiálni kell egy C blokkban. Azt, hogy hogyan az adatlapból kiderül.
A config bitek között kell beállítani az int osc. üzemmódot, valamint a PCON regiszter 3. bitje állítja (ez már szoftverből) a frekvenciát:
1 = 4 MHz typical(1) 0 = 37 KHz typical Alapból az 1-esre áll be elvileg.
Köszönöm a linket. Sose találtam volna meg.
Sziasztok
Egy multitaskos példát feltudna tenni valaki,amiben adc,pwm led villogtatás megy párhuzamossan egyszerre. A példák kötött sajna nem találtam ilyet
ÉS a kód. Remélem olyan filet rakok fel amit lehet is használni.
Szóval az én elméletem szerint ennek a kódnak a ledeket a kapcsol eljárással nagyon gyorsan kellene villogtatni. Ehhez képest a szimulációban irgalmatlanul lassan villog, a PICben meg mondjuk Úgy 1/4 másodpercenként. Ha valaki tudja mit rontottam, megköszönném a segítséget... (közben túrom a példaprogramokat is, aza legjobb tanulás) UI2: A PWM-et ne figyeljétek.. az benne maradt az előzőekből és később valszeg kelleni fog
Sziasztok!
V5-ben hol találok leírást az adcről? adc raw average chanel stb. mit jelent pontosan? Hogyan kell használni? Köszi
Megnéztem a timer.fcf-et. Jól értelmezem:
Az egyik gombbal be, a másikkal kikapcsolom az össezs ledet. Ha nem kapcsolom ki, akkor 5 percenként eggyel kevesebb led világít (egyesével kapcsolgatja ki). Jól értem? Ha megtalálta valaki a hibát a kódomban nagyon várom a leszúrást.. mert akkor mennék tovább.. .
A szimulációnak mennyire lehet hinni? Mert futtatom ezt a timer programot, és 9 perce megy, de egy ledet sem kapcsolt ki. Szóval ez is lassabb a gépemen, mint (gondolnám) a valóságban... vagy ez nem megbízható? Vagy a 64 bites WIN miatt nem "pontos"?
Ha timer megszakítást használsz akkor égesd be és úgy próbáld ki mert a gépen sokkal lassabb.
A példaprogramban a Chip config-ban az van az oscillátornél, hogy XT.
Valaki tudna segíteni, hogy mit kell ott beállítanom, ha a BELSŐ oscillátort akarom használni? Beállítottam én is az XTt, de nem csinál semmit (külső nincs rajta).
XT=xtal azaz külső kvarc.. Ha belső kell akkor ott nem kell semminek lennie mivel ha átállítod intosc i/o-ra az a beállítás eltünik. Mellesleg ennek a picnek 4 megás a belső órája nálad meg 10-re van állítva, lehet azért lassú minden!
Nálam még olyankor volt ilyen ha a timerben initben késleltetést használtam, próbáld meg kivenni az 1s-es késleltetéseket és más módon old meg.
Megpróbálom a késleltetéseket kivenni.
De ezt az oscillátor beállítást nem értem (sztem itt lehet a kutya elásva). intosc i/o-ra van állítva, most ha 100 Hz-et lövök be a timernél (3276800, 32es osztóval) , és a számlálót 99re állítom (0ról indul) akkor kb másodpercenként villog, de kb 5-7 villogás után megfordul, vagyis késik annyit, hogy már fordítva villog. Úgy teszteltem, hogy a fülemhez tettem az órát és hallás alapján (tudom primitív, de nincs jobb ötletem). Szóval piszokul nem egy sec a villogás. Olvastam hogy a belső óra nem túl pontos.. de ennyire nem? Sztem az Osci beállításnál szúrtam el valamit. Mert ha a 3276800 helyett 4 millióra rakom, akkro is ugyanúgy villog (majdnem egy másodprecenként). Szóval ez így nem ok,.... Csak nem értem miért...
Szimulátorral nem is fogod tudni leszimulálni olyan gyorsasággal mint a valóságban. Ahhoz hogy lásd a timer pontos működését be kell égetned. Égesd be és próbáld ki úgy.
3276800-et belső órával sose fogsz tudni csinálni csak beállítani lehet de mivel 4 megával megy akkor is, ezért siet bármit is állitassz. 4 megával meg nem lehet pontos másodpercet előállítani csak trükközve. Ha pontos kell akkor 3276800-es kvarcot kell venned és azt beállítani. bár még az sem atomóra pontosságú.
"Atomórát" még nem építettem, de akkor milyen kvarcot javasolsz?
3,2768 megás kvarcal elég pontosat lehet építeni ha a kondikkal kikompenzálod, de ha tényleg pontos kell akkor külső óra ic.
Igazad lesz. Most már csak a kérdés, hogy erre miért nem jöttem rá magamtól...? Ezek szerint ez belső Órajellel csak 4 Mhz-en működik és slussz. No mindegy egyenlőr nem a pontos idő a cél, csak hogy azért az 1 sec ne legyen 6.
Köszi a segítséget. Most a következő, hogy egy "autóra" teszem, hogy mozog e..
Sziasztok
Egy multitaskos példát feltudna tenni valaki,amiben adc,pwm, led villogtatás megy párhuzamossan egyszerre. A példák kötött sajna nem találtam ilyet
adc mit csináljon? Mert attól hogy megméri a bemenetet nem látsz semmit. Vagy az villogtassa a ledet pwm-el?
Igazábol az érdekelne hogy egyszerre több dolgot hogy lehet a flowcoddal megcsinálni.Mondjuk ADC olvas lcd-re közben egy porton pl.5 sec-ként villognak ledek de ez egyszerre
Szinte minden példában találsz ilyet.. Csak nem tudtad, hogy mit keresel..
Igen ilyenre gondoltam ,köszönöm
Sziasztok hogy tudom beállitani hogy a késleltetés idözitöm pontos legyen belsö orajellel nem kell hü de pontos de az 1s ne 20s legyen (PIC12F675) köszönöm és bocs ha baromságot kérdezek.
Üdv Kovács
Én tmr0 megszakítást használok erre.
megadom a megszakítás beállításaiban az osztót és az órajelet. Pl 1220hz es órajel legyen Majd bele teszek egy számlálót. Pl Timer = Timer +1 Majd feltételes elágazás ami ha elér 1220-ig akkor az igen ág egy másik változónak pl "frisités" ad valami értéket. Pl "Frissites = 1" Így ha lényegében eltelik 1 mp akkor a frissítés értéke = 1 el. A fő függvényben meg ezt használom. Így van egy stabil 1mp es alapom. Csak a fő függvény végén a "Timer = 0" számítást bele kell tenni, hogy újra induljon a számlálás ha lefutott a program. Ha 122ig számol akkor 100ms, ha 244ig akkor 200ms.. ha 2440 ig akkor 2mp. Ha késleltetni akarsz akkor a "Frissités" változót is számlálóvá tenném és a fő függvényben ennek az értéknek a változását figyelném. Vagyis ha 1 mp-es a számlálóm és a frissítés 2vel egyenlő akkor az 2mp-es késleltetés. Ha a frissítés 5el egyenlő akkor 5mp a késleltetés. Nincs most fent a gépemen a flowcode, így nem tudok példát írni neked. Remélem érthető voltam. Valaki biztos tud egyszerűbbet, de nekem ez bevált.
Köszönöm és lényegében érthetö volt csak sajna kezdö létemre nem tudom felépiteni de küzdök és majd lessz valami.
Kedves Hozzáértők...
Szeretnék grafikai elemeket megjeleníteni a karakteres LCD-n. (Visszamenőleg szeretném sávokkal megjeleníteni a hőmérséklet változást a saját-készítésű szobahőmérőmön ) Arra gondoltam hogy feltöltögetem a 4*20-as LCD romjába a karakterként létrehozott vízszintes sávokat. ezen az oldalon láttam sávokat Valahogy majd arányítom (egy kis matek) a hőértéket a 4*7magas pixelsorhoz, egy óra lesz egy oszlop, majd kiíratom. Eddig megoldom (ha van egyszerűbb megoldás áruljátok el) De így csak ugye 20 óra fér ki a képernyőre... Lehet valahogy egy pixelt bekapcsolni? Akkor lehetne egy óra egy pixeloszlop... negyedórás lehetne a kijelzés... finomabban látszódna a változás. Nőcisebb lehetne ! |
Bejelentkezés
Hirdetés |