Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
Mironko
0 / 0 / 0
Регистрация: 30.01.2017
Сообщений: 6
#1

Музыкальный электронный звонок на AVR

16.05.2018, 16:48. Просмотров 102. Ответов 2

Делаю курсовой, при отладке программы выдаётся ошибка в T0 и T1, вроде как всё рабочее. Скажите, где косяк, ибо программа уже похоже финальная, а из-за ошибки проверить не могу. Делается всё на atmega 16
Вложения ниже:

↓Текст программы↓

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
        .include "m16def.inc"
        .def temp=r18
        .def craz=r19 
        .def n=r20
        .equ kdel=26
        .dseg
    dig:.byte 52;зарезервировал в SRAM 52 байта
        .cseg
        .org 0
        jmp init
        .org $0002
        jmp int_0
        .org $000c
        jmp t1
        .org $0026
        jmp t0
        .org $002a
init:;инициализация стека
        ldi temp,high(ramend)
        out SPH,temp
        ldi temp,low(ramend)
        out spl,temp
        ;инициализация порта
        ldi temp,0b01100000
        out ddrd,temp
        sbi portd,2 ;подтягивающий регистр
        sbi portd,6
        ;НАСТРОЙКА ТАЙМЕРОВ                  
        LDI temp,0x08
        OUT ASSR,temp;настройка на работу от кварцевого генератора 
        CLR temp
        OUT TCNT1H,temp
        out TCNT1L,temp ;сброс таймера
        LDI temp,0b00010010 ;РАЗРЕШЕНИЕ ПРЕРЫВАНИЯ ПО СОВПАДЕНИЮ
        OUT TIMSK,temp; 
        LDI temp,0x08
        OUT ASSR,temp;настройка на работу от кварцевого генератора 
        CLR temp
        OUT TCNT0,temp;сброс таймера 
        ldi temp,0b01000000
        out GICR,temp ; РАЗРЕШЕНИЕ INT0
        ldi temp,0b00000010
        out MCUCR,temp ;ПРЕРЫВАНИЯ ПО СПАДУ
        ldi temp,0
        out TCCR1A,temp 
        ldi temp,0b00001101
        out TCCR1b,temp ;РЕЖИМ РАБОТЫ ТАЙМЕРА Т1 СТС И КОЭФИЦИЕНТ ПРЕДДЕЛИТЕЛЯ 1024
    SEI;общее разрешение прерываний
        ldi temp,16
        sts dig,temp
        ldi temp,0      
        sts dig+1,temp
        ldi temp,0
        sts dig+2,temp
        ldi temp,50     ;соль
        sts dig+3,temp
        ldi temp,64
        sts dig+4,temp
        ldi temp,50     ;соль
        sts dig+5,temp
        ldi temp,64
        sts dig+6,temp
        ldi temp,50     ;соль
        sts dig+7,temp
        ldi temp,64
        sts dig+8,temp
        ldi temp,37     ;ре
        sts dig+9,temp
        ldi temp,32
        sts dig+10,temp
        ldi temp,56         ;ля
        sts dig+11,temp
        ldi temp,16
        sts dig+12,temp
        ldi temp,0
        sts dig+13,temp
        ldi temp,50     ;соль
        sts dig+14,temp
        ldi temp,64     
        sts dig+15,temp
        ldi temp,37     ;ре
        sts dig+16,temp
        ldi temp,32      
        sts dig+17,temp
        ldi temp,56     ;ля
        sts dig+18,temp
        ldi temp,32      
        sts dig+19,temp
        ldi temp,50     ;соль
        sts dig+20,temp
        ldi temp,64
        sts dig+21,temp
        ldi temp,0  
        sts dig+22,temp
        ldi temp,37     ;ре
        sts dig+23,temp
        ldi temp,32      
        sts dig+24,temp
        ldi temp,50     ;соль
        sts dig+25,temp
        ldi temp,64
        sts dig+26,temp
        ldi temp,50     ;соль
        sts dig+27,temp
        ldi temp,64
        sts dig+28,temp
        ldi temp,37     ;ре
        sts dig+29,temp
        ldi temp,32
        sts dig+30,temp
        ldi temp,43     ;фа
        sts dig+31,temp
        ldi temp,16
        sts dig+32,temp
        ldi temp,43     ;фа
        sts dig+33,temp
        ldi temp,16
        sts dig+34,temp
        ldi temp,0
        sts dig+35,temp
        ldi temp,42     ;ми     
        sts dig+36,temp
        ldi temp,32         
        sts dig+37,temp
        ldi temp,37     ;ре
        sts dig+38,temp
        ldi temp,32
        sts dig+39,temp
        ldi temp,42     ;ми
        sts dig+40,temp
        ldi temp,32
        sts dig+41,temp
        ldi temp,0       
        sts dig+42,temp
        ldi temp,50     ;соль
        sts dig+43,temp
        ldi temp,64     
        sts dig+44,temp
        ldi temp,33     ;до
        sts dig+45,temp
        ldi temp,8      
        sts dig+46,temp
        ldi temp,33     ;до
        sts dig+47,temp
        ldi temp,8      
        sts dig+48,temp
        ldi temp,63     ;си
        sts dig+49,temp
        ldi temp,32
        sts dig+50,temp
        ldi temp,0
        sts dig+51,temp
        ldi temp,0  
        sts dig+52,temp
        ldi temp,0
        sts dig+53,temp
opros1: RJMP opros1
        ;ОБРАБОТЧИК ПРЕРЫВАНИЯ
int_0:  CLR YH
        ldi YL,low(dig)     ;НОМЕР НОТЫ
        add yl,craz
        ld temp,y
        ldi ZH,high(S_Seg*4)
        ldi ZL,low(S_Seg*4) ;адрес начала ячеек хранящие мелодию
        add ZL,temp ;адрес мелодии
        LPM 
        OUT OCR1AH,r0
 
        inc craz
        CLR YH
        ldi YL,low(dig)     ;НОМЕР НОТЫ
        add yl,craz
        ld temp,y
        ldi ZH,high(S_Seg*4) 
        ldi ZL,low(S_Seg*4) ;адрес начала ячеек хранящие мелодию
        add ZL,temp ;адрес мелодии
        lpm 
        out ocr0,r0
        ldi temp,0b00011101
        out TCCR0,temp ;запуск Т0
        inc ZL
        lpm
        ldi n,0
        jmp opros1
        S_Seg:
        .dw 0B00100001,0B00001000,0B00100001,0B00100000 //0B00100101,0B00100000,//0B00100001,0B00100000,//0B00101011,0B01000000,///0B00101010,0B00010000,//0B00100001,0B00001000,//0B00100001,0B00100000,//0B00100101,0B00100000,///0B00100001,0B00100000,///0B00111111,0B00100000,//0B00101011,0B00010000,//0B00100001,0B00001000,//0B00100001,0B00100000,//0B01000011,0B00100000,//0B00111000,0B00010000,//0B00101011,0B00001000,0B00101011,0B00100000,0B00101010,0B00100000,0B00100101,0B00010000,0B00111011,0B00001000,0B00111011,0B00100000,0B00111000,0B00100000,0B00101011,0B00100000,0B00110010,0B01000000,0B00101011
↓Мой материал(ссылка в облаке)↓
Кликните здесь для просмотра всего текста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2018, 16:48
Ответы с готовыми решениями:

Музыкальный дверной звонок на Attiny2313
Добрый вечер, прошу помогите, никак не могу разобраться, как сделать переключение мелодии по кнопке...

AVR AVRISP STK500 V3.0 USB ISP Programmer for AVR IC
Люди помогите плз. не могу разобраться. приобрел этот чудный девайс (AVR AVRISP STK500 V3.0 USB...

AVR Atmega324PU не прошивается AVR ISP Mk2
Добрый день. На плату впаян данный микроконтроллер в корпусе tqfp. При подключении программатора...

Анализ стека AVR / AVR stack analysis
Привет! Уперся я в стек, и решил понять что почем. Нашел вот такой вот скриптик:...

AVR Studio 6 и AVR Toolchain вопросы!
Всем доброго времени суток. Решил я написать софтинку в новой студии от Атмела AVR Studyo 6. Все...

2
ValeryS
Модератор
7215 / 5478 / 682
Регистрация: 14.02.2011
Сообщений: 18,532
16.05.2018, 18:02 #2
Mironko, не надо прятать код под сполеры
0
pyzhman
760 / 456 / 63
Регистрация: 15.05.2012
Сообщений: 2,553
16.05.2018, 21:06 #3
Цитата Сообщение от Mironko Посмотреть сообщение
выдаётся ошибка в T0 и T1
Ну так сюда её, родимую.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.05.2018, 21:06

AVR Studio 6 Avr simulator
Подскажите каким образом стартануть прогу в avr symulator с адреса boottooder (atmega8a, 0x0F80)....

Как подружить AVR+AVR?
Приветствую Вас уважаемые форумчане! Требуется связать 2 AVR-ки, по классической схеме Master ->...

CAVR против AVR Studio, что не так в программе под AVR Studio
Проблема такая, есть исходник, если его компилировать в CAVR заливаю в МК все работает, если этот...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru