Dallamcsengő Tiny45 chipre
- oregharcos
- Újonc

- Hozzászólások: 9
- Csatlakozott: 2009. szeptember 21. hétfő, 6:00
Zene
Szia Robi!
Mint már láttad, ill. olvastad a másik fórumon, én AVR-be kis zenét programozok, programoztam bele. Nem kapom vissza azokat a hangokat
amit hallani szeretnék.
Már sokszor olvastam a 903.Zene leírásodat.
Nem igazán értem, próbáltam számolni, de nem jött ki normális szám.
Azt szeretném kérni, hogy írd le, miként számítsam ki egy ATtyni45- be, 8Mhz-es oszcillátorral, hogy pl. egy A-hang, 880Hz szóljon X-ideig!
Ha már egy kész számítás megvan, azt már át tudom írni. Remélem.
Segítségedet előre is köszönöm!
Mint már láttad, ill. olvastad a másik fórumon, én AVR-be kis zenét programozok, programoztam bele. Nem kapom vissza azokat a hangokat
amit hallani szeretnék.
Már sokszor olvastam a 903.Zene leírásodat.
Nem igazán értem, próbáltam számolni, de nem jött ki normális szám.
Azt szeretném kérni, hogy írd le, miként számítsam ki egy ATtyni45- be, 8Mhz-es oszcillátorral, hogy pl. egy A-hang, 880Hz szóljon X-ideig!
Ha már egy kész számítás megvan, azt már át tudom írni. Remélem.
Segítségedet előre is köszönöm!
Lesd meg:
http://avr.tavir.hu/modules.php?name=Co ... age&pid=40
Sound utasitas:
SOUND pin, duration, pulses
Alapban kiadom az adott impulzusszámot és megmérem a frekvenciát.
Ezt pár helyen elvégezve, meg is van a konstans a 8 MHzre.
Az excel-ben a konstanst változtasd.
http://avr.tavir.hu/modules.php?name=Co ... age&pid=40
Sound utasitas:
SOUND pin, duration, pulses
Alapban kiadom az adott impulzusszámot és megmérem a frekvenciát.
Ezt pár helyen elvégezve, meg is van a konstans a 8 MHzre.
Az excel-ben a konstanst változtasd.
- oregharcos
- Újonc

- Hozzászólások: 9
- Csatlakozott: 2009. szeptember 21. hétfő, 6:00
Üdv mindenkinek!
Átírtam a sirleslie-től kapott kódot így:
Ledjelzés kiiktatva, helyére a nyomógom került.
PB3-on= Hangszoro
PB4-en=nyomogomb
Így a PB0,1,2-sek szabadon maradnak az STK500-as programozáshoz.
Eredmény: ha kiiktatom a ledjelzést, nem szól a hangszoró.
Ha így alakítom 'If Csengetes = 0 Then parancsot szól a hangszoró.
Természetesen így nincs nyomógomb kezelés.
Szeretném megoldani, hogy csak akkor induljon a dallam, amikor a gombot megnyomom.
Itt az eredeti kód:
Átalakitott kód:
A ledjelzésre nincs szükségem.
Azt szeretném kérdezni, hogy mit csinálok rosszul, miért nem működik
gombnyomásra?
Segítséget előre is nagyon köszönöm!
Átírtam a sirleslie-től kapott kódot így:
Ledjelzés kiiktatva, helyére a nyomógom került.
PB3-on= Hangszoro
PB4-en=nyomogomb
Így a PB0,1,2-sek szabadon maradnak az STK500-as programozáshoz.
Eredmény: ha kiiktatom a ledjelzést, nem szól a hangszoró.
Ha így alakítom 'If Csengetes = 0 Then parancsot szól a hangszoró.
Természetesen így nincs nyomógomb kezelés.
Szeretném megoldani, hogy csak akkor induljon a dallam, amikor a gombot megnyomom.
Itt az eredeti kód:
Kód: Egész kijelölése
'*************************************************************************
'* Dallamcsengő visszajelzéssel by MM - mcselec.com #AN155 alapján *
'* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *
'* Fordító : BASCOM - V.2.0.7.4 *
'* Dátum : 2012-05-12 *
'* Honlap : www.sirleslie.atw.hu *
'* Írta : Balogh László *
'* E-mail : mestermuvek.atw@gmail.com *
'* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *
'* Örök köszönet a sok-sok segítségért: Cseh Róbert http://avr.tavir.hu *
'*************************************************************************
$regfile = "attiny45.dat"
$crystal = 8000000
' ATtiny45 lábkiosztása a feladathoz
' __ __
' I U I
' Reset PB5 I I VCC
' PB3 I I PB2 Csengő gomb
' PB4 I I PB1 Hangszóró
' GND I I PB0 Visszajelző led
' I___ I
Config Portb.0 = Output
Config Portb.1 = Output
Config Portb.2 = Input
Config Portb.3 = Output
Config Portb.4 = Output
'Portb.5 RESET - nem piszkáljuk
Hangszoro Alias Portb.1
Csengoled Alias Portb.0
Portb.2 = 1
Config Int0 = Falling
On Int0 Gombnyomas
Enable Int0
Enable Interrupts
' változók
Dim Csengetes As Bit , Ledvill As Byte
Do
If Csengetes = 1 Then ' ha gombnyomás történt
Set Csengoled ' csengetés vizuális jelzése
'Europe :: Final Countdown - egy kicsit gyors, 8MHz-es órajelhez vannak generálva a sound utasítás paraméterei
Sound Hangszoro , 124 , 675 'H2(1/16)
'itt van a többi hang kódja
Reset Csengoled
Reset Csengetes ' csengetés jelzőbit törlése
End If
' készenléti üzemmód jelzése
Incr Ledvill
If Ledvill = 100 Then Set Csengoled ' ...egy rövid villanással
If Ledvill = 102 Then
Reset Csengoled
Ledvill = 0
End If
Waitms 20
Loop
Gombnyomas: ' gombnyomáskor
Set Csengetes ' csengetés jelzőbit aktiválása
Return
Kód: Egész kijelölése
'*************************************************************************
'* Dallamcsengő visszajelzéssel by MM - mcselec.com #AN155 alapján *
'* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *
'* Fordító : BASCOM - V.2.0.7.4 *
'* Dátum : 2012-05-12 *
'* Honlap : www.sirleslie.atw.hu *
'* Írta : Balogh László *
'* E-mail : mestermuvek.atw@gmail.com *
'* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *
'* Örök köszönet a sok-sok segítségért: Cseh Róbert http://avr.tavir.hu *
'*************************************************************************
$regfile = "attiny45.dat"
$crystal = 8000000
' ATtiny45 lábkiosztása a feladathoz
' __ __
' I U I
' Reset PB5 I I VCC
' Hangdszoró PB3 I I PB2 régi Csengő gomb
' PB4 I I PB1 régi Hangszóró
' GND I I PB0 régi Visszajelző led
' I_____I
Config Portb.0 = Output
Config Portb.1 = Output
Config Portb.2 = Output
Config Portb.3 = Output
Config Portb.4 = Input
'Portb.5 RESET - nem piszkáljuk
Hangszoro Alias Portb.3
'Csengoled Alias Portb.0
'Portb.2 = 1
Portb.4 = 1
Config Int0 = Falling
On Int0 Gombnyomas
Enable Int0
Enable Interrupts
' változók
Dim Csengetes As Bit ', Ledvill As Byte
Do
If Csengetes = 0 Then ' ha gombnyomás történt
' Set Csengoled ' csengetés vizuális jelzése
'Europe :: Final Countdown - egy kicsit gyors, 8MHz-es órajelhez vannak generálva a sound utasítás paraméterei
Sound Hangszoro , 124 , 675 'H2(1/16)
'Itt vannak a többi hang kódjai
' Reset Csengoled
Reset Csengetes ' csengetés jelzőbit törlése
'End If
' készenléti üzemmód jelzése
' Incr Ledvill
'If Ledvill = 100 Then Set Csengoled ' ...egy rövid villanással
'If Ledvill = 102 Then
' Reset Csengoled
' Ledvill = 0
'End If
Waitms 20
Loop
Gombnyomas: ' gombnyomáskor
' Set Csengetes ' csengetés jelzőbit aktiválása
Return
Azt szeretném kérdezni, hogy mit csinálok rosszul, miért nem működik
gombnyomásra?
Segítséget előre is nagyon köszönöm!
oregharcos!
Talán előbb az alapokat kellene elsajátítani, nem rögtön a megszakítás és hangkeltést!
Először talán olvasd ezt el, elejétől végéig:
http://avr.tavir.hu/modules.php?name=Co ... ies&cid=15

Talán előbb az alapokat kellene elsajátítani, nem rögtön a megszakítás és hangkeltést!
Először talán olvasd ezt el, elejétől végéig:
http://avr.tavir.hu/modules.php?name=Co ... ies&cid=15
- oregharcos
- Újonc

- Hozzászólások: 9
- Csatlakozott: 2009. szeptember 21. hétfő, 6:00
Köszi az infót, sokat segített!kapu48 írta:oregharcos!
Talán előbb az alapokat kellene elsajátítani, nem rögtön a megszakítás és hangkeltést!
Először talán olvasd ezt el, elejétől végéig:
http://avr.tavir.hu/modules.php?name=Co ... ies&cid=15
- oregharcos
- Újonc

- Hozzászólások: 9
- Csatlakozott: 2009. szeptember 21. hétfő, 6:00
Szia!kovacsna írta:Partszélről:
Prellegni fog, de nem kicsit!
Vagy írsz egy prell mentesítő részt vagy a debounce paranccsal megoldod.
Én a helyedben azt, használnám! Erre találták ki. Ráadásul, bármelyik lábra ráteheted.
A help-ben megtalálod a szintaktikát!
Köszönöm az infót! A prell nem gond, mert optocsatolóval megy az input.
Egy RC időállandóval tudom javítani, esetleg schmitt trigger-el.
Azt tudom, hogy másik lábon is mehet az input, mert C-ben működik.
- tranzisztoros
- Újonc

- Hozzászólások: 2
- Csatlakozott: 2012. április 7. szombat, 6:00
Szia Robi!Robert írta:A másik lábon csak akkor input, ha a sw-t is átírod hozzá:)
Legegyszerűbb prelltelenítő:
- felhúzó a láb és 5V közé 10k,
- láb és gnd közé 100nF
optoinput?
Igaz nem 50Hz jön rajta?
Köszönöm az infókat! A prellezés most azért nem zavar, mivel ez egy próba.
Majd még átnézem a kódot, és a leírtakat.
Nagyon köszönöm segítségedet!
Minden jót!
- oregharcos
- Újonc

- Hozzászólások: 9
- Csatlakozott: 2009. szeptember 21. hétfő, 6:00
Szia Robi!Robert írta:Ha a gomb meg lett nyomva, akkor játsza le a dallamot, az a cel?
SET csengetes megfelel a csengetes=1-nek.
If csengetes=0.... sor meg akkor jatszik, ha nincsen megnyomva.
Mi a cel pontosan?
Hogyan kellene, hogy mukodjon?
Köszönöm, hogy foglalkozol a dologgal!
Az első kód amit beraktam, az jól működik, gombnyomásra szól a csengő.
A célom az, hogy a nyomógomb ne a PB2-ön legyen, hanem a PB4-en.
Tehát PB4-es lesz az Input.
Köszönettel!
Kód: Egész kijelölése
do
DEBOUNCE Pinb.4 , low , gombnyomas , SUB
.
.
.
.
loop
Gombnyomas:
set csengetes
return
- oregharcos
- Újonc

- Hozzászólások: 9
- Csatlakozott: 2009. szeptember 21. hétfő, 6:00
Köszönöm!
Üdvözlök mindenkit!
Sikerült megoldani SirLeslie segítségével.
Mindenkinek köszönöm a segítséget!
Sikerült megoldani SirLeslie segítségével.
Mindenkinek köszönöm a segítséget!