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

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

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

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

↓Текст программы↓
http://www.cyberforum.ru/avr/thread1479207.html

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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Музыкальный электронный звонок на AVR (Atmega AVR микроконтроллер):

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

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

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

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

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

2
ValeryS
Модератор
7124 / 5392 / 669
Регистрация: 14.02.2011
Сообщений: 18,204
16.05.2018, 18:02 #2
Mironko, не надо прятать код под сполеры
0
pyzhman
755 / 451 / 62
Регистрация: 15.05.2012
Сообщений: 2,541
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+AVR?
Приветствую Вас уважаемые форумчане! Требуется связать 2 AVR-ки, по...

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

Программа "Электронный звонок"
Привет всем. Сразу расскажу задачу: надо сделать прогу на Microsoft Visual...

AVR JTAG mkI + avarice + avr-gdb + Linux
По какой то неведомой причине мне причине не могу нормально подключится к...


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

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

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