GIFR.INTF0=1

Avatar
Meschu
Tranzisztorgyógyász
Hozzászólások: 163
Csatlakozott: 2009. december 3. csütörtök, 7:00

GIFR.INTF0=1

Hozzászólás Szerző: Meschu »

Szervusztok.

A félreértések elkerülésére, igen ritkán de néha mégiscsak muszály progiznom igy a kérdéseimet a tudatlanok kategoriájában kezeljétek.

Kérdés.1:

Egy poti állását szeretném lekérdezni és aszerint három Ledet be ill. kikapcsolni (mega8). A Ledek a VCCn lógnak.

Kód: Egész kijelölése

Do

Poti = Getadc(0)

  Select Case Poti
    Case 0 To 333:
     Led1 = 0  
     Led2 = 1
     Led3 = 1
    Case 334 To 666:
     Led1 =1
     Led2 = 0
     Led3 = 1

    Case 667 To 1023:
     Led1 =1
     Led2 = 1
     Led3 = 0
 End Select
Loop
End
Megy is, de ha a potit finoman állitgatom akkor "átfedést" tapasztalok a két szonszédos Led közt..
Kéne itt tőbb üres helyet hagyni mint egyet ? Ha igen menyit? Van erre valami álltalános szabály? Vagy ezt esetenként tapasztalati uton kell kisilabizállni?
Függhet ez magától a potitól (minőség)? Vagy inkább az ADC pontatlanságától?

Kérdés.2:
Interrupt.

Ha én ezt nem egy tiszta digitális jelel hanem egy kapcsolóval inditom és azt nem a Debunce val vagy egy kondival stb. megtisztitva akkor előfordulhat, hogy kétszer is elindulhat.
Olvasom a neten, hogy ezen közvetlen a Return elött beirt GIFR.INTF0=1 segit. De azt is, hogy ezt rögtön az utasitások elejére kell irni:-)
Hogy helyes ez most ha egyálltalán? Nekem nagyon egyszerűnek ill. jónak tünik ha valóban megoldja a problémát?
Vagy van valami más, jobb megoldás?

Kérdés.3

Szerettem volna a terminálon követni mit ist történik az emlitett "átfedés" nél és ezért egy kis tranyóval invertiertem a szignált. Olvastam, hogy rövid kábelnél ez is elegendő nem okvetlen szügséges RS232. Megy valóban de nem számokat hanem betüket ir ki ha én az End Select után beirom Print Poti.
Miért?:-))))
Ugyan igy is jól látszik, hogy az utolsó számjegy ill. most betű néha ugráll de számokat illene azért irnia:-)

Köszöni előre is a türelmeteket.

Meschu.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: GIFR.INTF0=1

Hozzászólás Szerző: Robert »

Az ADC poti esetén bizonytalan, azaz más-más értékeket mér.
Ha a Poti/ADC az 5Von van és ez is a referencia, akkor a LED ki/bekapcsolgatásával a referencia is el-el mászkál. Feszmérő/multiméter mutat érdekességeket. AVR esetén a 5V/1024: 5mV már 1 egység!
A hálózati brummot is összeszedheti, az is bezavarhat.

Az ADC eredmény függ:
- ADC zavar,
- Referencia elmászik,
- digitalizálási hiba, zaj
- adatlap ADC error fejezet :)

Poti:
- mechanika
- mennyire nyomom és jobb/rosszabb a csúszkánál sz érintkezés
- áramkör kialakítása

Szabályok megszegése: szívás
Ahol ettől eltérőt olvastál (rövid kábel, nem számít), na onnan ne fogadj meg tanácsokat....
RS232 esete. A PC esetén _csak_ alaplapi TTL/RS232 porttal stabil a jelkezelés, mert ezeket eleve erre felkészítették.
Az invertálásra van egyszerűbb:
Config COM1=9600,8,n,1, Inverted (-> Bascom súgóban)
A jelszinted ettől is még csak 0/5V lesz az előírt +/- 3...15V helyett.
Avatar
csabeszq
Bitfaragó
Hozzászólások: 678
Csatlakozott: 2012. szeptember 5. szerda, 6:00

Re: GIFR.INTF0=1

Hozzászólás Szerző: csabeszq »

Ezt nem úgy szokták megoldani, hogy 333-nál az egyik világít, 334-nél a másik.

Szoktak senkiföldjét berakni, pl. 332-335-ig az előző állapot marad.

Az ADC egyébként viszonylag stabil, 1-2 egység játéka van. Persze ha 8MHz-en mintavételezel, eljuthatsz 10-20 egység játékhoz is.

A mintavételezési frekvenciát tartsd 100 kHz alatt.
Avatar
Meschu
Tranzisztorgyógyász
Hozzászólások: 163
Csatlakozott: 2009. december 3. csütörtök, 7:00

Re: GIFR.INTF0=1

Hozzászólás Szerző: Meschu »

@Robert.

>Szabályok megszegése: szívás.<

Manapság ez még sokhelyütt invertálva is igaz (egyenlőre)

>Ahol ettől eltérőt olvastál (rövid kábel, nem számít), na onnan ne fogadj meg tanácsokat....<

>RS232 esete. A PC esetén _csak_ alaplapi TTL/RS232 porttal stabil a jelkezelés, mert ezeket eleve erre felkészítették.<

Igen, igy volt, az RS232 történetét elolvastam. De a mai PC-k mind értik ill. helyessen értelmezik a 0-5 V tartományt is. Legalábbis ez van állítva:-)
Hogy a szoftweres invertálás (mint említetted) akkor miért nincs rögtön emlitve, tanácsolva, minek forrasztgatni, azon még filózgatok.
Kipróbállom:-)
Nem találtam a sok kacatom közt egy MAX-ot pedig tudom, hogy többet kompletten kivágtam öregebb platinákból:-)
Amit azonban itt mégse értek, miért ir mindig betűket melyek nyilvánvalóan számokat jelentenek mert nem valami véletlenszerően mindíg mások hanem mindig (a potiállástól függően) ugyanazok és darabszámuk is megegyzik és csak az utólsó ugráll náha.

@ csabeszq

>Szoktak senkiföldjét berakni, pl. 332-335-ig az előző állapot marad.<

Igen erre én ist gondoltam, De mekkorát?:-)))

>Az ADC egyébként viszonylag stabil, 1-2 egység játéka van. Persze ha 8MHz-en mintavételezel, eljuthatsz 10-20 egység játékhoz is.<

>A mintavételezési frekvenciát tartsd 100 kHz alatt.<

Köszi, erre nem gondoltam, sajna nem nagyon van időm mélyebben belemerűlni.
Hogy néz ki ez a progiban????Egyébbként most még csak az eredeti 1MHz- el fut ezt majd emelem.
De a potit (10K) is jól megynyomorgattam még a lábait ist tapogattam de alig valami észrevehető volt a változás.
A täp meg igen stabil, akkúról megy 7805 1,5A val és mindenhol a kondik meg még egy kis induktivitás is bent van mint tanácsolva..

Meschu
Avatar
csabeszq
Bitfaragó
Hozzászólások: 678
Csatlakozott: 2012. szeptember 5. szerda, 6:00

Re: GIFR.INTF0=1

Hozzászólás Szerző: csabeszq »

A bascomhoz nem értek, viszont hardver szinten az ADC mintavételezési frekvenciája állítható.
Az órajelet tudod osztani bizonyos értékekkel. Ha 8 MHz-en futsz, akkor egy 64-es osztóval 125 kHz-re kerül az ADC frekvencia. Egy ADC olvasás 12-13 ciklust igényel, így 10 kHz-en tudsz mintavételezni.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: GIFR.INTF0=1

Hozzászólás Szerző: Robert »

A hibás karakter: az adatfolyamod időzítése sérül.
Ez lehet HW de lehet akár egyszerű, az amit összeszed.
Szoftverhibára nem tippelnék, bár stack összecsúszás Arduino alatt csak a jószerencse kérdése... Bascom-AVR alatt meg ott a stcheck utasítás....

A mai PC RS232-k egy külön állatfaj. És az a baj, hogy RS232. Recommended for standard van sajnos az EIA-232 helyett. Azaz "nagyjából" a szabványnak megfelel. de azt, hogy hol _nem_ azt már nem mondja meg.
Az alaplapi RS232 0/5V helyett 0/3,3V inkább :(
De ha PCI/PCIE RS232 bővítőkártya, akkor még nagyobb szívatás lehet (címkezelés, IRQ, jelszintek).

Próbáld ki egy folyamatos print/delay/print/delay utasítássorral, Arduino alattott a Serial Monitorra az ASCII tábla. Azt küldd át. Ott van e hiba?
Válasz küldése