.include "m8535def.inc"
LDI R16,Low(RAMEND)
OUT SPL, R16
LDI R16,High(RAMEND)
OUT SPH, R16
LDI R16,255
OUT DDRD, R16
LDI R16,0b00011001 ; CTC-mode ; Toggle-output ; no-prescaler
OUT TCCR2, R16
Program:
RCALL G
no to najpierw to stos
potem r16 na wyjscie i port d na wyjscie
potem sa 2 linijki co gosc nam podal
to sie tam z dataszitu odczytuje
wiec tak musi byc i chuj
no i potem juz jade z nutami
rcall G wywoluje nute G
potem masz 2 przerwy
zrobilem zeby byl czas uslyszec kazda nute
no i rcall d0
to tam zeruje r16 czyli co kazda nute ustawia port d na 0
zeby mogl wczytac nastepna nute
i eliminuje szum
a potem masz kazda funkcje napisana
i tam jak sa np
C:
LDI R16, 221
OUT OCR2,R16
RET
to ze nuta C ma czestotliwosc 221
to sie wylicza ze wzoru
to gosc wam poda
bedzie wzor i bierzesz wartosc nuty z wikipedii
i wstawiasz do wzoru
RCALL delay
RCALL delay
RCALL D0
RCALL E
RCALL delay
RCALL delay
RCALL D0
RCALL E
RCALL delay
RCALL delay
RCALL D0
RCALL F
RCALL delay
RCALL delay
RCALL D0
RCALL D
RCALL delay
RCALL delay
RCALL D0
RCALL D
RCALL delay
RCALL delay
RCALL D0
RCALL C
RCALL delay
RCALL delay
RCALL D0
RCALL E
RCALL delay
RCALL delay
RCALL D0
RCALL G
RCALL delay
RCALL delay
RCALL D0
RJMP program
delay:
LDI R19, 0xFF
WHILE11:
LDI R18,0xFF
WHILE1:
DEC R18
BRNE WHILE1
DEC R19
BRNE WHILE11
RET
C:
LDI R16, 221
OUT OCR2,R16
RET
D:
LDI R16, 197
OUT OCR2,R16
RET
E:
LDI R16, 179
OUT OCR2,R16
RET
F:
LDI R16, 165
OUT OCR2,R16
RET
G:
LDI R16, 147
OUT OCR2,R16
RET
D0:
LDI R16,0
OUT DDRD, R16
LDI R16,0
OUT PORTD, R16
RCALL delay
LDI R16,255
OUT DDRD, R16
LDI R16,255
OUT PORTD, R16
RET
Wyszukiwarka
Podobne podstrony:
TIMER BUZZER LEDtimerUniverseller Countdown TimerSmutny kotektimertimer tmr506k timer ne555 regulator pwmTimerWesoły kotekPobieranie i przechowywanie nasienia kocura oraz sztuczna inseminacja kotekwięcej podobnych podstron