pcint megszakitás

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

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

Az ATTIny2313-ban került bevezetésre a PCInt. Ennek örömére nem az összes láb ismeri ezt, hanem csak egyetlen porton érhető ez el. a PCINT ezért nincs számozva. Az Mx8 családban már minden lábra került belőle...
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

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

Nem tudhatom, mert nekem még nem volt a kezemben ATtiny2313.
De az adatlap szerint PB Port minden lábára engedélyezhető lenne!
Erre most akkor kíváncsi lennék! Akinek van ilyen az kipróbálhatná és közölhetné az eredményt!
Itt a teszt progi:

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

$regfile = "attiny2313.dat"
$crystal = 8000000
'$sim

Config Portd.0 = Output
Config Portb = Input
Portb = &B11111111                                          'activate pull up

Enable Interrupts                                           'enable global ints
Enable Pcint                                                'we enable pcint0
On Pcint Isr_pcint                                          'we jump to this label
'Engedélyezzük mind a 8 PCINT-et
Pcmsk = &B11111111                                          'enable pcint7-0 (portb.7-0)

Dim Old_pcint As Byte , New_pcint As Byte
Dim Num As Integer
Old_pcint = 0
New_pcint = Old_pcint
Num = 0
'Lehet Nyomkodni a PortB lábaira a jeleket
Do
'Ha változott az érték ki irja
   If Old_pcint <> New_pcint Then
      Num = Num + 1
      Print Num ; ": Old: " ; Bin(Old_pcint) ; "  New: " ; Bin(New_pcint)
      Old_pcint = New_pcint                                    'Tárolja a régit
   End If
Loop

End

Isr_pcint:
   
   New_pcint = Pinb                                        'Beolvassa az ujat
   Toggle Portd.0                                           'Led villog
Return
8)
Avatar
kefeur
Tranzisztorgyógyász
Hozzászólások: 187
Csatlakozott: 2008. február 17. vasárnap, 7:00

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

Ez így müxik .
PortB minden lábán jó.
Kefeur
Avatar
daniel926
Biztosítékgyilkos
Hozzászólások: 65
Csatlakozott: 2011. december 7. szerda, 7:00

Re: pcint megszakitás

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

Utána olvastam a leírásoknak, de még mindig nem akar sikerülni teljes mértékben a PCINT megszakítás.Azt szeretném elérni hogy gomb nyomásra aludjon el a zöld led és villanjon fel teljes fényerővel a piros led ehelyett haa megnyomom a gombot a zöld led továbbra is villog a piros led pedig nagyon halványan épphogy megvillan. Mi lehet amit elnéztem?

Nem engedi elküldeni a hozzászólást ha a kódot bemásolom.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: pcint megszakitás

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

A kódot file-ként csatold... pl. txt-ként...
Avatar
daniel926
Biztosítékgyilkos
Hozzászólások: 65
Csatlakozott: 2011. december 7. szerda, 7:00

Re: pcint megszakitás

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

A kód az előző hozzászólásomhoz.
Nincs meg a kellő jogosultságod a hozzászóláshoz csatolt állományok megtekintéséhez.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: pcint megszakitás

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

INTben SOHA nincs waitms! Pláne nem ilyen hosszú!

Minthogy _nyomógombod_ van, így a prellt kellene először is lekezelni/megfogni...INT alatt beeső prell előjegyzi a következőt....Azaz kilépéskor még 1x végrehajtódik...
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Re: pcint megszakitás

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

És kellene némi verem területet is lefoglalni!
Pl.:

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

$hwstack = 32
$swstack = 32
$framesize = 32
Avatar
daniel926
Biztosítékgyilkos
Hozzászólások: 65
Csatlakozott: 2011. december 7. szerda, 7:00

Re: pcint megszakitás

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

Az alábbi http://avr.tavir.hu/images/contents/int ... e-self.bas prellre vonatkozó mintaprogramban szintén van waitms mely ugyanúgy 75 ms-os.
Prell kezelésére kellene nekem szájbarágósan egyszerű mintaprogram ledes visszajelzéssel. Hiába próbálok debounce, debouncetime meg hasonlókat az eredmény ugyan az.

kapu48:

Mért van szükség a veremterület lefoglalására? És melyik mit takar?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: pcint megszakitás

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

A hivatkozott mintaprogram környékén ott a figyelmeztetés: MINTA! Soha nem használj INT késleltetést.
VEREM: a Hibakeresés/biztosítékbitek fejezetben...


NEM debounce/debouncetime.
SAJÁT megvalóstást hozz össze.... Volt már (itt is) jópár minta:
- gombnézés - vár - gombnézés. ha azonos a 2 állapot: gomb volt (ez csak főprogramban)
- timer alapon ellenőrzöd...
Avatar
daniel926
Biztosítékgyilkos
Hozzászólások: 65
Csatlakozott: 2011. december 7. szerda, 7:00

Re: pcint megszakitás

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

Probléma továbbra is fennáll.
Hogyan oldható meg a gomb figyelése?
Érthető működő mintaprogrammal rendelkezik valaki?
Segítséget előre is köszi.
Avatar
daniel926
Biztosítékgyilkos
Hozzászólások: 65
Csatlakozott: 2011. december 7. szerda, 7:00

Re: pcint megszakitás

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

Robert írta: - gombnézés - vár - gombnézés. ha azonos a 2 állapot: gomb volt (ez csak főprogramban)
- timer alapon ellenőrzöd...
Ezeket mind a mai napig nem értem hogyan lehetne megvalósítani. Ki lehetne fejteni bővebben?
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Re: pcint megszakitás

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

Az elképzelés lényege, hogy az emberi reakció idő jóval lassabb, mint a gomb okozta prelezés.

Tehát figyeled két megszakítás között eltelt időt.
És ha túlzottan rövid, azt Prelnek veszed. És csak 1* hajtod végre amit szeretnél.

Vagyis elengeded a feleslegesnek vélt megszakításokat.

Erre lehet többféle megvalósítást is írni.

Vagy az első megszakítás után kivárod, hogy elmúljon a gombod okozta felesleges megszakítás ideje.
Ezzel az a baj, hogy közben áll az egész program és nem tud gyorsan reagálni, ha közben más esemény is történik.
8)
Avatar
daniel926
Biztosítékgyilkos
Hozzászólások: 65
Csatlakozott: 2011. december 7. szerda, 7:00

Re: pcint megszakitás

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

Próbáltam hogy megszakításban várakozzon egy keveset de ez ugye nem jött össze meg nem is szabad.
A metódust magát értem de leprogramozni, megvalósítani már nem tudom.Ha ugye If szerkezetet használunk az szintén lassú, így kiesik mint lehetséges megoldás.
Köszi a választ.
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Re: pcint megszakitás

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

Azért ne essünk túlzásba!
1 - 2 if művelet nem tart ms-ekig.
Válasz küldése