pcint megszakitás

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Avatar
daniel926
Biztosítékgyilkos
Hozzászólások: 65
Csatlakozott: 2011. december 7. szerda, 7:00
Tartózkodási hely: Perkáta

Re: pcint megszakitás

HozzászólásSzerző: daniel926 » 2013. március 1. péntek, 16:25

Kezdek jobban összezavarodni. A Bascom könyvben lévő if szerkezetes megszakításra az van írva hogy nem jó mert a főprogram nem biztos hogy észreveszi.

Avatar
SzLacus
Tranzisztorgyógyász
Hozzászólások: 175
Csatlakozott: 2012. május 20. vasárnap, 6:00
Tartózkodási hely: Budapest

Re: pcint megszakitás

HozzászólásSzerző: SzLacus » 2013. március 1. péntek, 16:36

Mi volna például, ha a megszakításban elmentenél egy rendszeridő jellegű változót. Pontosabban definiálnálsz magadnak egy prellnek tekintett időt, és a megszakításban a pillnatnyi rendszer időhöz hozzáadva a prell időt elmentesz egy változót. Aztán a loopban amikor a rendszer idő eléri, vagy meghaladja az elmentett értéket, akkor megnézed a gombod vajon mit csinál. Ha nyomottnak találod akkor elmúlt a prell. Mivel minden prell újra és újra előrébb mutató időt fog elmenteni a végeredmény az lesz, hogy amikor már legalább prell időnyi nyugalomban van a nyomógombod, akkor fogod, végrehajtani azt amit gombnyomásra akarsz csinálni. Így a megszakításban csak egy változó értékadás lesz egy összeadással, mégis várakozás lesz az eredmény. De nem a program futása akad meg, csak a gombnyomás kiértékelése lesz késleltetve.
Próbáld meg ezt leprogramozni, szerintem menni fog, aztán ahogy használgatod egyre jobban kifinomítod a megoldást.
Várjuk a sikerélményt.

Avatar
daniel926
Biztosítékgyilkos
Hozzászólások: 65
Csatlakozott: 2011. december 7. szerda, 7:00
Tartózkodási hely: Perkáta

Re: pcint megszakitás

HozzászólásSzerző: daniel926 » 2013. március 2. szombat, 21:08

Szép estét mindenkinek.
Hiába értem hogyan kéne a prellt megoldani akár SzLacus akár kapu48 leírása alapján, egyszerűen nem tudom programban megvalósítani.Utána olvasva meg még zavarosabbá válik a dolog.

Avatar
SzLacus
Tranzisztorgyógyász
Hozzászólások: 175
Csatlakozott: 2012. május 20. vasárnap, 6:00
Tartózkodási hely: Budapest

Re: pcint megszakitás

HozzászólásSzerző: SzLacus » 2013. március 3. vasárnap, 1:31

Pedig addig nem mehetsz haza amíg meg nem érted. :D
Mi nem világos? Konkrétan leírtam, hozz létre egy változót, a rendszer idővel azonos típusú legyen. Találd ki, hogy mennyi időt tekintünk prellnek. Például 2msec. A nyomókádat fogadd egy olyan lábon ami megszakítás kezelésére alkalmas. Álítsd be a megszakítást a lábra mondjuk arra az élre, ami gombnyomásnál keletkezik. Magyarul, ha GND-n van a gomb egyik fele (másik a proc lábán, felhúzásról persze gondoskodni kell) akkor lefutóra legyen a megszakítás, feltéve, hogy a gomb megnyomásra zár. A megszakítás rutinba írd bele, hogy az idő változód értéke legyen egyenlő a pillanatnyi rendszeridő és a prell idő összegével. Majd mint aki jól végezte dolgát, térj vissza a megszakításból. A fő programba írj bele egy if-et, amiben azt vizsgálod, hogy a pillanatnyi rendszer idő kisebb-e mint az elmentett idő. Ha igen, akkor nincs mit tenni, még nem telt le a prellezési idő, megy tovább a fő programod. Ha nem, akkor megnézed, hogy a gomb milyen állapotban van. Ha nyomottnak találod, akkor fix állapotban van, jöhet az az utasítás sorozat, amit a gomb nyomás esetén kell csinálni. Játsz vele egy kicsit, és rájössz, hogyan működik, és hogyan lehetne még jobb. Mikor nem működik jól ez a módszer, stb. Segítek kicsit. Például ha túl hosszúra választod a prell idejét, akkor mire letelik, már el is engeded a gombot, és annyira prell mentes lesz, hogy még a rövid gombnyomást sem veszi észre. Ez az amit Kapu48 írt a program és az ember gyorsaságáról. Csináld, és menni fog. Ennél részletesebb csak az lenne, ha komplett kódot írnánk ide, de ha ez alapján nem érted mit kell csinálni, akkor azt a programot sem értenéd meg, ami ezt csinálja.

Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3349
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

Re: pcint megszakitás

HozzászólásSzerző: kapu48 » 2013. március 3. vasárnap, 10:24

Ez van mikor egy kezdő úszó, beugrik a mélyvízbe!
Csak fuldoklik, és nem talál semmi támpontot.

Tessék előbb sorba menni a tanulásban.
:|

Avatar
Robert
Elektronbűvölő
Hozzászólások: 10064
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: pcint megszakitás

HozzászólásSzerző: Robert » 2013. március 3. vasárnap, 14:18

Polling alapon megy a prellmentesítés?
Akár a PCINT lábakon is....

Szerintem induljunk innen.... :)

Avatar
daniel926
Biztosítékgyilkos
Hozzászólások: 65
Csatlakozott: 2011. december 7. szerda, 7:00
Tartózkodási hely: Perkáta

Re: pcint megszakitás

HozzászólásSzerző: daniel926 » 2013. március 3. vasárnap, 14:30

SzLacus: Megpróbálom még egyszer.
Robert: Mit takar hogy polling alapon?

Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3349
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

Re: pcint megszakitás

HozzászólásSzerző: kapu48 » 2013. március 3. vasárnap, 15:22

polling = lekérdezés
Vagyis a megszakításban lekérdezed, hogy mi a helyzet a nagyvilágban?
És ehhez igazítod a program cselekvését.

Már ne haragudj! 8O :roll: :cry:

Valami segítség.
Bascom and AVR, Interrupts:
http://www.qsl.net/pa3ckr/bascom%20and% ... index.html
8)

Avatar
Robert
Elektronbűvölő
Hozzászólások: 10064
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: pcint megszakitás

HozzászólásSzerző: Robert » 2013. március 3. vasárnap, 16:14

Magyarul:
http://avr.tavir.hu/modules.php?name=Co ... age&pid=18

(még a régi helyen, de nem sokáig)


Vissza: “Bascom-AVR nyelvű programozás (AVR programozásának lehetőségei)”

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég