Programozott LED villogó

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Válasz küldése
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

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

Próbáld igy:

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

 Config Timer1 = Pwm , Prescale = 64 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down
 Ocr1a = 8    'O
Ocr1b = 100
 Ocr1c = 200
Nagyobb Procikban 16 bites a Timer1 ott lehet PWM= 8-10,
itt csak 8 bites Nem lehet nagyobb mint 8, ezért nem is lehet állitani
A hozzászólást 1 alkalommal szerkesztették, utoljára kapu48 2011. június 28. kedd, 11:35-kor.
Avatar
mester1025
Biztosítékgyilkos
Hozzászólások: 52
Csatlakozott: 2011. május 24. kedd, 6:00

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

köszi így lefordul...tudnál adni hozzá egy kis magyarázatot hogy miért igy kell? :oops:

( ha valakinek lenne anniy szabadideje, hogy egy egyszerű fényerőváltoztatós programot fel tudna tenni nagyon megköszönném..mert nekem abszolut nem aakr összejöni és már több napja probálkozom :D :S )
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

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

Légyszíves fogalmazd már pontosabban a kérdéseidet a jövőben!
Mert minden procira jól működő program ritka! És PWM re is van 100+1 megoldás!
Avatar
mester1025
Biztosítékgyilkos
Hozzászólások: 52
Csatlakozott: 2011. május 24. kedd, 6:00

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

rendben bocsánat...

attiny26 os mikrovezérlvel szeretném elérni,hogy a kimenetre kötött RGB LED fényereje fokozatosan változzon és ne ugrásszerűen...csak ennyit szeretnék..szimplán..megérteni..
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

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

Hogyan oldanád meg?

A lépések:
1, Chip konfigurálás, Timer beállítás)
2, Használt változók deklarálása
3, Ciklus, és abban fel/leszámolni

Nos, ezeket kell kitalálni....

Csúnya vagyok :P :
kulcsszó: PWM1a=1...255
for/next környékével összefésülve....
Avatar
mester1025
Biztosítékgyilkos
Hozzászólások: 52
Csatlakozott: 2011. május 24. kedd, 6:00

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

nos itt tartok...fogalmam nincs hogy kellene folytatni vagy hogy lenne jó:

$regfile = "attiny26.dat"
$crystal = 4000000
$hwstack = 40
$swstack = 16
$framesize = 32


Dim R As Word
Dim L As Word

Config Timer1 = Pwm , Prescale = 64 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down
Ocr1a = 8
Ocr1b = 100
Ocr1c = 200



Config Portb.1 = Output
Config Portb.3 = Output




Do

Portb.1 = 0
Portb.3 = 0



For R = 0 To 512
'ide nemtudom mit kellene irni, de ez számolna felfele
Waitms 1

Next R


For L = 0 To 512

'ez pedig hátrafele

Waitms 1

Next L


Loop


End
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

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

Először a változók Csak Byte méretűek legyenek! Már tisztáztuk Itt csak 8 bit = 1 Byte = 0 – 255-ig érték fér bele!
:roll:

Ezeket a változó R és L értékeket bele kelenepakolni a:
kulcsszó: PWM1a=1...255 Be
A hozzászólást 1 alkalommal szerkesztették, utoljára kapu48 2011. június 28. kedd, 12:22-kor.
Avatar
mester1025
Biztosítékgyilkos
Hozzászólások: 52
Csatlakozott: 2011. május 24. kedd, 6:00

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

rendben, hogy vannak benne ilyen alaphibák...amikre örülök, hogy felhivod/felkhivjátok a figyelmem, de szeretnék azzal kapcsolatban is javaslatokat, hogy hogy tudnám életre kelteni..
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

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

For valami = eleje to vege, ahol:
"valami" a valtozo erteke, ciklusonkent valtozik.
eleje - innen szamol
vege - eddig

A lepeskoz alapban +1. Ha elterot akarsz, akkor STEP.

For valami = eleje to vege step -2
ahol: eleje NAGYOBB mint vege és kettesevel lefele szamol.


A egesz szamok erteke:
Byte : 0-255
Word: 0..32767
Long/dWord/integer: nagy szamok:)

Törtek:
single/double - szamolasigenyes és kettestört ábrázolásban

Változó definiálása:
DIM valami As byte/long/word



Na ebből tessék kipróbálni a programot :)
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

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

Oldal Alján 2 For ciklus
Sample BASCOM PWM
http://www.bradlylewis.com/bascom_avr/bascom_pwm.php
:arrow:
http://www.kanatronics.cba.pl/index_fil ... UpDown.bas

Jaj gonosz vagyok nem hagyom tanulni az kezdőt! :?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

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

Sültgalamb nincs ? :P :evil:


Az okítás során megtanulja - ha végigviszi:
- Mi az a PWM
- Mi az a változó, mik a limitjei (méret, érték)
- Változó túlcsordulás mit okoz
- For/Next ciklus hogyan működik, mit lehet befolyásolni vele


Meg idővel:
- hogyan tudom _oszcilloszkópon_ megnézni, ha csak 1 PC van kéznél
- Előre letárolt színárnyalatok előhívása (Lookup/data/read)
- A láb miért kimenet és miért nem bemenet a PWM használatkor ilyenkor? A chip resetkor minden lábat bemenetre rakja, azt itt miért nem?
- Timer0 / Timer1 mi a különbség? miért?
- Ha fut PWM, miért nem használhatom TIMER-ként is?

:lol:
Avatar
mester1025
Biztosítékgyilkos
Hozzászólások: 52
Csatlakozott: 2011. május 24. kedd, 6:00

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

közben sikerült valamit összehozni a programból, hibát nem jelez azonban az RGB led piros színe folyamatosan világit és a fényereje nem változik...tudnátok segiteni hol lehet a hiba?...köszönöm

$regfile = "attiny26.dat"
$crystal = 4000000
$hwstack = 40
$swstack = 16
$framesize = 32


Dim R As Byte
Dim L As Byte

Config Timer1 = Pwm , Prescale = 64 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down
Ocr1a = 8
Ocr1b = 100
Ocr1c = 200



Config Portb.1 = Output
Config Portb.3 = Output




Do

Portb.1 = 1
Portb.3 = 1



For R = 1 To 255
Ocr1a = Ocr1a + R
Ocr1b = Ocr1b + R
Waitms 1

Next R


For L = 1 To 255

Ocr1a = Ocr1a - L
Ocr1b = Ocr1b - L

Waitms 1

Next L


Loop


End
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

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

Belinkeltem:

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

$regfile = "attiny26.dat" 
 $crystal = 4000000 
 $hwstack = 40 
 $swstack = 16 
 $framesize = 32 


 Dim R As Byte 
 Dim L As Byte 

 Config Timer1 = Pwm , Prescale = 64 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down

dim i as byte         'Index számláló

Do
for i = 0 to 255     ' 0- 255-ig számol
pwm1a = i       
pwm1b = 255-i
waitms 50
next

for i = 255 to 0 step -1   '255 - 0-ig számol
pwm1a = i
pwm1b = 255-i
waitms 50
next

Loop

Avatar
mester1025
Biztosítékgyilkos
Hozzászólások: 52
Csatlakozott: 2011. május 24. kedd, 6:00

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

köszönöm szépen
a kérdésem annyi lenne ,hogy nem fordul le mert a
pwm1a = i " assignment error
pwm1b = 255-i "invalid datatype
részre hibát dob
Avatar
nobody_hun
Bitfaragó
Hozzászólások: 425
Csatlakozott: 2005. november 14. hétfő, 7:00

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

winnerbt írta:és megmutatod azt a táblát, amit szobortál belőle?
Mennyi is az az olcsó?
JAni
Sajnos ez a meló nem publikus. AVR M644, LED meghajtóként MC33999 van benne (itthon nem kapható), ez veszi le a PWM-et az AVR válláról.

A LED ára 25 Ft/db volt.
"Az IC-k füsttel működnek. Ha kijön belőlük a füst, nem működnek tovább." - ismeretlen szerző
"Az ID:FFFFFF egyenlő az Atmel még nem kiadott processzorával."
Válasz küldése