Időzítés bascom alatt

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Avatar
herc1234
Bitfaragó
Hozzászólások: 459
Csatlakozott: 2007. február 9. péntek, 7:00

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

kapu48 írta:Kezdésnek túl nagy fába vágtad a fejedet! (Akarom mondani a billentyűzetedet!) :)
Többek között először be kellene gyakorolni a szimulátor használatát!
Azon nyomon tudnád követni, mikor mi történik!
De csak kérdez, ha tudunk segítünk! Különben még mi sem tudunk mindent! És ismétlés a tudás öreganyja!
nekem is ez a véleményem
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

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

Mondjuk ez:
If Ido =< 50 Then
Set Portc.0 'led bekapcsolása
Else
Reset Portc.0 'led kikapcsolása
End If

Így szebb lenne:
If Ido < 51 Then
Toggle Portc.0 'led állapot váltása
End If

De még szebb lenne csak így:
Case 254 : If Ido < 51 Then Toggle Portc.0 'led állapot váltása

Ha ez bemenet:
Config Portd.0 = Input
Akkor: Set Portd.0 Bekapcsolja a bemeneti felhúzó ellenállást. Ez biztosítja, hogy ne lebegjen a bemenet!
Ennek viszont itt nem sokk értelme van: Reset Portd.0


8)
Viszont az egész folyamat logikája nem eléggé átgondolt!
Inkább erre kellene több figyelmet fordítani! Nem a sokk felesleges Sub rutinra!
:?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

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

Toggle az ellenkekezőre vált. Így még ezt is tartsd fejben, hogy hol milyen allapotban van? :)

En inkabb a Set+Reset kombinaciot javaslom. Az a biztosabb... ha meg LEDvillogó kell, akkor megy a Toggle...
Avatar
herc1234
Bitfaragó
Hozzászólások: 459
Csatlakozott: 2007. február 9. péntek, 7:00

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

kapu48 írta: Viszont az egész folyamat logikája nem eléggé átgondolt!
Inkább erre kellene több figyelmet fordítani! Nem a sokk felesleges Sub rutinra!
:?
miért nem írsz akkor te is egyet ?
de nem használhatsz subrutint
hidd el a lineáris programozás elavult..
Avatar
kovacsna
Pákabűvész
Hozzászólások: 208
Csatlakozott: 2008. június 3. kedd, 6:00

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

herc1234 írta:

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

$regfile = "m8def.dat"

$crystal = 4000000
$hwstack = 64
$swstack = 64
$framesize = 80
'ezek ugye itt a gombok

Config Portd.0 = Input
Config Portd.1 = Input
Config Portd.2 = Input
Config Portd.3 = Input

'ez lesz itt a számláló
'mivel 16 bites
const Timer1Reload = 3036
'3036on kell állnia a számlálónak egy másodperchez

config timer1=timer,prescale = 64
'timer1 -et kinevezzük timernek előosztás 64

load timer1 , Timer1Reload
'a 3036 betőltjük a timer1 be

Hello,

Szegény embernek magyarázzatok is, hogy mi miért van.
No leírom én:)
Szóval a timer-eknél és máshol is, van elősztás. Ez adott érték lehet.
Ezzel a számmal lesz elősztva az órajeled. Itt tessék odafogyelni, hogy van olyan proci ami eleve tud 8-as osztást ha azt a fuse biteknél beállítod. Ez 8 szokott lenni. Itt most nincs.
Szóval a Timer 1 az egy 16 bites számlánc aminek a max értéke 65536 lehet. 2 ^16 .Eddig képes elszámolni. Amikor eléri ezt az értéket akkor jön az interrupt ha az be van kapcsolva, és meg van adva, hogy milyen cimkére ugorjon! Ezek is megvannak, lépjunk.
Minden óraciklusban 1-el növekszik a számlánc. A kérdés az, hogy honnan kell indulnia adott órajel mellett, hogy mire a végére ér 1mp teljen el!
Azt a következő módon tudod meghatározni. Egy dologra kell figyelni, hogy mikor van még Hz-ben a dolog mikor időben. Ehhez az alábbi képlet kell f=1/T.
No kezdjÜk
4000000/64 = 62500 Hz Ez lesz a valódi órajele a timer1 nek. Mivel a "fő" órajelet osztod az elősztással. Ezt áttesszük időbe. A képlet alapján T=1/f
1/62500 =0,000016 s . Ez a legkisebb idő amit megtudsz "mérni". Magyarul ennyi idő alatt lép egyet a számlánc. Most az kell, hogy Te mekkora időt szeretnél mérni. Jelen esetben 1 s-ot. Akkor meg kell nézni, hogy az elemi idő hányszor van meg az általad mérni akart időben. 1/0,000016 = 62500. Mivel 1 s-ot akarsz mérni visszakapod az előző értéket, de ez nem törvényszerű. Ez az a szám, ameddig képes elszámolni a Timer 1s alatt. Mint mondtam a megszakítás akkor következik be ha a számlánc elérte a 65536-ot. Ergo az előző számot ebből ki kell vonni. 65536-62500=3036. Ez nem mindíg jön ki kerek számra.
Ezt kell indulási értéknek megadni, ahogyan ezt láthatod. Innen kezd el pörögni a lánc! Arra figyelj hogy amikor a program elugrik a megszakítási cimkére ott az legyen az első, hogy ezt az értéket beírod a számláncba ismét.
Remélem ezután tiszta, hogy "Hogy is van ez?" :)

További jótanács. Használj a be- kimeneteknél aliast.
Áttekinthetőbb lesz a progid, és ha portot cserélsz akkor egy helyen kell átírni a dolgot.
pl:

gomb1 alias pind.0

led1 alias pinb.0

config gomb1 = input

config led1 = output


By
Kn
A hozzászólást 2 alkalommal szerkesztették, utoljára kovacsna 2009. március 12. csütörtök, 9:57-kor.
Avatar
elektromos
Bitmanipulátor
Hozzászólások: 101
Csatlakozott: 2008. július 30. szerda, 6:00

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

No egyre érdekesebb dolgokat írtok!
Tényleg azt hittem, hogy a nyomógomb kezelés ilyen egyszerű, de látom máshonnét kell kezdenem! Kipróbáltam,és müködött is herc1234
komoly kis programja, de szemmel láthatólag ugyanazt csinálta, mint amit én előzőleg feltettem, csak kevesebb utasítással. Nekem valami egyszerübb kezdet kell, az alapoktól kezdve, mert sok minden magas nekem amit írtok, de utánna nézek a neten a fogalmaknak, és keresek valami kezdőknek való könyvet! Ti akik ilyen profik vagytok, nem gondoltatok még arra, hogy készítsetek egy teljesen kezdőknek való leírást, az elejétől a komoly programokig? Szerintem lenne rá igény, mert nem mindenki jár főiskolára, meg egyetemre, és a kezdőknek aranybánya lenne egy ilyen leírás. Akár az általam kezdett topikban, vagy nyitnátok egy kezdők tanfolyama cím alatt egy új topikot! Ti miből kezdtétek? Hátha nekem is nagy segítség lenne!
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

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

Kezdőknek való könyvek - sajnos - nem egységesek. Itt súlyosbító körülmény, hogy a programozást _és_ az elektronikát is egyszerre kell tanítani :( .

Pláne Basicból ilyet találni nehéz lesz. Itt a 80-as évek TVBasic, és egyéb programozási könyveit tudnám javasolni. Igaz ez némi megkötéssel van csak. Ugye ott PC nem volt, csak Sinclair ZXSpectrum, C64 a beépített Basic fordítóval.

Az alapkülönbség: Print, Input az alap . Itt meg LED ki/LED bekapcs.... :(

Egy könyv azért nem kis munka....
És kereslet hiába van rá, spec terület, spec nyelv.

Angollal hogy állsz?
Bascom with Ease. PDFként is helyenként elérhető.
Illetve az Arduino/Processing könyvek (igaz ez C-re (arduino) megy rá), de jól felépítettek is vannak...
Ezek a könyvek magyar nyelven, nyomtatva ~8-10.000 eFt körül lennének.... Ez az a katagória, amit nem lehet már megfinanszírozni. 3-5eFt is soknak tűnik sokaknak. Pedig ez nem is az a egetverő kategória...
Avatar
elektromos
Bitmanipulátor
Hozzászólások: 101
Csatlakozott: 2008. július 30. szerda, 6:00

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

Jónak néz ki ez köny! Már olvasgatom is!
Avatar
herc1234
Bitfaragó
Hozzászólások: 459
Csatlakozott: 2007. február 9. péntek, 7:00

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

Erre írtam hogy wiki kell a bascom-nak.
simán végigmenni a parancsokon is baromi nagy segítség.
Viszont ami az alap mű basciből az a ENTERPRISE (nem tom jól írom e)
teknőcös magyarnyelvű könyve.Legalábbis engem régen már
olvasni tudó koromban(gépem nem volt hozzá sajna)indított el
ezen rögös úton.
ui:Különben meg ez a select case bascom kézikönyv mintha
változott volna már az 1.3-ban és kicsit több információra emlékszem
az elöző verziókban.Tényleg ezt valaki észrevette már hogy kurtítják
a könyvet?
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

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

„miért nem írsz akkor te is egyet ?
de nem használhatsz subrutint
hidd el a lineáris programozás elavult..”

Szubrutint csak akkor érdemes írni, ha azt több helyről is meghívjuk!
Esetleg ha olyan nagy méretű, hogy széthúzza a programunkat!
De egyetlen csak 1 helyről hívott If utasításért felesleges 2db ugrással megnyújtani és áttekinthetetlenné tenni a programot!
:roll:
Avatar
herc1234
Bitfaragó
Hozzászólások: 459
Csatlakozott: 2007. február 9. péntek, 7:00

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

Olvasd el mit írtam
azért raktam be hogy bővíthető legyen ill. tanulás kedvért.
Másrészt mindenhol ezeket a programozási techinkát
próbálják már tanítani a népnek.
Persze igazad van csak ez kicsit kritizálásnak hangzik.
Amit viszont nem értek miért jó neked.
Avatar
unandi
Újonc
Újonc
Hozzászólások: 1
Csatlakozott: 2008. október 7. kedd, 6:00

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

Sziasztok ! Egy nagyon kezdő kérdésem lenne, előre is elnézést a profiktól.Tehát a kérdés: Örököltem egy STK500 panelt és megkértek égessek kész programot vele Atmega8535 kontrollerbe. Rendelkezésre áll a *.hex, *.obj, *.asm file is. Belehelyeztem STK500-ba az Atmega8535, tápot adtam a panelnak, összekötöttem a PC-vel, elindítottam az AVR prg-t. Kiválasztottam a *.hex filét a hozzávaló kontrollert, mindent felismert, minden OK. Amikor a Program gombot lenyomom mindig azzal az üzenettel áll le, hogy programing mode FAILED. A status LED sárga, mellette a prg gomb lenyomása után azonnal a piros világit. Mit lehet tenni ilyenkor?
Üdv.:Unándi
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

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

Tisztelt Herc123!
Megkérlek, maradjunk a programozásnál! Ne menjünk át személyeskedésbe!
De ha fenntartod magadnak az egyedüli tanácsadó jogot, ám legyen!
:D
Avatar
elektromos
Bitmanipulátor
Hozzászólások: 101
Csatlakozott: 2008. július 30. szerda, 6:00

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

Lenne egy ötletem, de mindenkinek kellene a segítsége! Látszik többen vagytok, és ugyanazt a feladatot többféle módon is meg tudjátok csinálni.
Ezért arra gondoltam, hogy ti is tanulhattok egymástol is, mert ahány ember, annyi szokás, és pont ez a jó benne! Én ha tennék fel egy rajzot és hozzá pár kérést, azt meg csinálnátok? Először ara gondoltam, hogy hogyan lehetne látványosan kezdeni. Én is boldog voltam, mikor villogó progit betöltöttem, és az villogot is. Tudom ti már messze vagytok ettől, de valószínű ti is a kicsi progikkal kezdtétek. Gondoljatok bele, ha valaki más kezdő is eljut ide, milyen boldog lesz, mert lát kézzel fogható egyszerű kis programokat kikommentezve, és elmagyarázva, mint idáig is tettétek páran. Tudom időt rabol el mindenkitől, és milliomosok sem lesztek belőle, de büszkén visszanézhettek majd ide később és örülhettek , hogy segítettetek sok száz, vagy 1000 kezdőnek. Pic-el azért nem foglalkoztam, mert basic nyelvet alig használ 1-2 emberke, és a segítség mindig az volt , hogy tanuljam inkább ASM-et. Persze nekik is igazuk van, de oda már gépi agy kell! Tehát benne vagytok akkor kezdhetünk? Persze bíráljatok felül ha ez hülyeség amit írok, , mert a Ti ötleteteket is várom ebben a kezdőknek való témában!!!
Avatar
elektromos
Bitmanipulátor
Hozzászólások: 101
Csatlakozott: 2008. július 30. szerda, 6:00

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

Hogyan tudok képet betenni ide?
Válasz küldése