Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 10.05.2018
Сообщений: 58
1

Atmega128 и 16

23.04.2020, 23:35. Просмотров 1318. Ответов 20
Метки нет (Все метки)

Добрый день есть программа реализации синуса на atmega16, нужно переделать функции под atmega 128, так же хотелось бы узнать до какого момента формируется синус, т.к. код программы формирует с вершинами отдельными от синуса
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
.include "m16def.inc"
.cseg
.org $01B
rjmp start
rjmp acp
 
start:
ldi r16,high(RAMEND)
out SPH,r16
ldi r16,low (RAMEND)
out SPL,r16
ldi r16, 0b00100000
out ADMUX,r16
ldi r16, 0b10011111
out ADCSRA,r16
ldi r16, 0b11111111
out DDRC,r16  
ldi r16, 0
out DDRA,r16 
ldi r16, 0b11110000
out DDRD,r16
ldi r16, 0b01000000
out PORTD,r16
ldi r16,$c0
ldi r17,$40
mov r21,r16
subi r21,$80
ldi r22,$ff
 
 
sei
sbi ADCSRA,ADSC 
m1:
rjmp m1
acp:
clc
in r18,ADCH
mov r20,r18
cp r18,r16
brlo m2 
eor r18,r22
add r18,r21
mov r20,r18  
rjmp m3
m2:
clc
cp r17,r18
brlo m3
mov r20,r17
m3:
cbi PORTD,6
out PORTC,r20
sbi PORTD,7 
cbi PORTD,7 
sbi PORTD,6 
sei
sbi ADCSRA,ADSC 
reti
буду благодарен любой подсказке
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.04.2020, 23:35
Ответы с готовыми решениями:

производство Atmega128
Правда ли что Atmega128 снят с производства? В нигазинах-то их полно.

АЦП Atmega128
По жизненной необходимости столкнулся с МК. Есть куча непоняток. Прошу Вас помочь мне. Необходимо...

ATmega128 PORTF
Не получается настроить PORTF на выход. фуз джитага скинул, режим совместимости с м103 убрал,...

ATmega128 + FatFs
Третий день бьюсь над загадкой, и не выходит каменный цветок. Схему прилагаю. Подключено по SPI...

20
901 / 541 / 81
Регистрация: 15.05.2012
Сообщений: 3,168
20.05.2020, 13:39 21
Лучший ответ Сообщение было отмечено WarllordD как решение

Решение

Как вариант:
Assembler
1
2
3
4
5
6
7
8
9
10
    BRPL    NO_EDIT_temp1;Переходим на NO_EDIT_temp1 и пропустим следующую команду, если (temp1 - CENTER) > 0 (если флаг N = 0).
;        LDI     temp1,  CENTER; Если эту команду не пропускаем, то идёт нижная половина синусоиды, и вместо неё в temp1 записываем сдений уровень (CENTER).
 
;Суть такая. Если текущее значение temp1 меньше CENTER, то к CENTER прибавляем разницу между CENTER и temp1, т.е. инвертируем текущий сигнал.
    LDI R17,0xFF ; заносим в регистр R17 число 255
    SUB R17,temp1; вычитаем из него текущее значение
    INC R17  ; прибавляем единицу
    MOV temp1,R17; переносим результат обратно в temp1
 
;дальше всё как было
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.05.2020, 13:39

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Прошить ATMEGA128
Народ, ни разу не работал со 128 и 256 мегами. Все МК с чем приходилось работать, прошивал STK-500...

ESP8266+atmega128
помогите разобраться с модулем wi-fi. отправляю в модуль AT-команды, но не могу сделать нормальный...

atmega128 - фронт
Добрый день есть код программы , делающий таймер по переднему фронту, вопрос заключается в том как...

Внешние прерывания ATMega128
Всем привет. У меня задача такая: есть меиндр с изменяющейся частой и надо замерять время между...

Atmega128 управление ШИМ
Помогите, пожалуйста. Пишу программу на СVAVR. Нужно, что бы по приходу на ногу МК (например на...

Запрограммировал Atmega128. Не работатет...
Здравствуйте! Жил себе спокойно вместе с Atmega16. Захотелось работу с картой памяти. Запаял...


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

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

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