Ассемблер (ASM) для AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
Starichok51
Модератор
Сообщения: 19054
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Starichok51 »

С.Н. писал(а):переперобывал
чтобы получилось на до пробОвать, а не пробЫвать ...
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Реклама
С.Н.
Потрогал лапой паяльник
Сообщения: 307
Зарегистрирован: Пн окт 26, 2020 08:37:51
Откуда: г.Волгоград

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение С.Н. »

[uquote="Starichok51",url="/forum/viewtopic.php?p=4013790#p4013790"]
С.Н. писал(а):переперобывал
чтобы получилось на до пробОвать, а не пробЫвать ...[/uquote]
не удобно получилось...согласен.


Нашел сам только что решение по второму вопросу:

#define A 8.1
..
.equ B=int(23456/A)
Проверил - работает.

А вот с точностью вычисления в препроцессоре пока нет решения.
ФУОЗ на платформе Ардуино: https://radiokot.ru/forum/viewtopic.php ... 6#p4366626
ВК - "ФУОЗ на микроконтроллере Atmega328P (МПСЗ)"
Реклама
dgrett
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Вс дек 28, 2014 21:54:05

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение dgrett »

Отдайте пользователю дробное число А, потом преобразуйте его для удобства вычислений( *100)
С=А*100
В=(int(2345600/C)
Или как-то так.
Я всё-всё узнAю и стану профессором.
Аватара пользователя
Flash.#13
Держит паяльник хвостом
Сообщения: 965
Зарегистрирован: Сб апр 12, 2014 23:46:03
Откуда: Киев

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Flash.#13 »

Извиняюсь за баян, кто-то пробовал ЖКИ ч/б нокии 5110 на AVR? Собрал схемку в протеусе, делаю тестовый код для самых базовых команд, а дело не едет, даже зажечь все сегменты черным не получается, что-то упускаю.

Код: Выделить всё

;Nokia5110 ЖКИ тест
.device Atmega8
.include "m8def.inc"	;1МГц

;lcd Port
.equ ddrLCD=ddrD
.equ portLCD=portD
;lcd Pins,распиновка ЖК:
.equ _light=1;light
.equ _pwr=2	;+5v
.equ _gnd=0	;gnd
.equ _sclk=3	;clk,sclk - клок
.equ _sdin=4	;din,sdin - дата
.equ _dc=5	;dc,d/c - выбор копанда/данные
.equ _sce=6	;ce,sce - chip enable
.equ _rst=7	;rst - reset

.org 0				;начало кода
	rjmp start

start:
;====установка портов====
ldi	R16,(1<<_pwr)|(1<<_gnd)|(1<<_light)|(1<<_sclk)|(1<<_sdin)|(1<<_dc)|(1<<_sce)|(1<<_rst)
out	ddrLCD,R16
ldi	R16,(1<<_pwr)|(0<<_gnd)|(1<<_light)|(1<<_sclk)|(0<<_sdin)|(1<<_dc)|(0<<_sce)|(1<<_rst)
out portLCD, R16
clr R16
out ddrB, R16	;PortB
out portB, R16
out ddrC, R16	;PortС
out portC, R16
;------------------------
;инициализация Nokia5110
cbi portLCD,_rst
nop
sbi portLCD,_rst
;команда
cbi portLCD,_dc

;0x09 зажечь все пиксели
cbi portLCD,_sdin;0
cbi portLCD,_sclk
sbi portLCD,_sclk
cbi portLCD,_sdin;0
cbi portLCD,_sclk
sbi portLCD,_sclk
cbi portLCD,_sdin;0
cbi portLCD,_sclk
sbi portLCD,_sclk
cbi portLCD,_sdin;0
cbi portLCD,_sclk
sbi portLCD,_sclk
sbi portLCD,_sdin;1
cbi portLCD,_sclk
sbi portLCD,_sclk
sbi portLCD,_sdin;1
cbi portLCD,_sclk
sbi portLCD,_sclk
cbi portLCD,_sdin;0
cbi portLCD,_sclk
sbi portLCD,_sclk
sbi portLCD,_sdin;1
cbi portLCD,_sclk
sbi portLCD,_sclk

main:
rjmp main
Согласно мануалу для общения используется SPI, накидал тестовый софтварный обмен, в мануале пишется, данные считываются при подъеме с лог0 на лог 1 клока, но в протеусе и на макетке стола дело не двинулось :?

Изображение Изображение Изображение
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
Реклама
Эиком - электронные компоненты и радиодетали
dgrett
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Вс дек 28, 2014 21:54:05

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение dgrett »

{ согласно мануалу}
В мануале процедура инициализации описана. Ресет там подольше длится, чем NOP. Это раз. А 2, 3, и тд пока не рассматриваем.
Я всё-всё узнAю и стану профессором.
Реклама
Аватара пользователя
Flash.#13
Держит паяльник хвостом
Сообщения: 965
Зарегистрирован: Сб апр 12, 2014 23:46:03
Откуда: Киев

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Flash.#13 »

С протеусом удалось договорится используя пример из компонента ЖКИ и отладочный виртуальный SPI, подглядел тайминги и задержки, после чего виртуальная среда начала рисовать примерно то же самое что в коде, но на реальном ЖКИ изображения пока нет. Продолжаю мучить :roll:

Изображение Изображение
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
Реклама
dgrett
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Вс дек 28, 2014 21:54:05

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение dgrett »

В сети доуя примеров работы с этим стеклом на асме.
Я всё-всё узнAю и стану профессором.
Аватара пользователя
Flash.#13
Держит паяльник хвостом
Сообщения: 965
Зарегистрирован: Сб апр 12, 2014 23:46:03
Откуда: Киев

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Flash.#13 »

Следуя примеру выяснилось что сам ЖКИ внутри не касался платы, поэтому не грузился :shock:
Подогнув контакты проблема не отображения была решена, но видать индикатор не новый, поле не полное, и отображаются 38 строк из 48, а так работает.

Изображение Изображение

Код: Выделить всё

;инициализация Nokia5110
sbi portLCD,_rst

cbi portLCD,_dc;инструкции

ldi R17,0x20	;LCD Basic Commands
rcall write5110
ldi R17,0x0c	;LCD in normal mode
rcall write5110

sbi portLCD,_dc;данные

ldi R16,84  ;закрасить блок 84х8 точек
srtoka:
ldi R17,0b10101010
rcall write5110
dec R16
brne srtoka
...
...
;SPI Nokia 5110
;R17-дата,R18-счетчик
write5110:
clr R18			;counter
data5110:
cbi portLCD,_sdin;sdi=0
lsl R17			;move
brcc b_5110		;C=0,флаг переноса
sbi portLCD,_sdin;sdi=1
b_5110:
sbi portLCD,_sclk;sclk=1
inc R18
cbi portLCD,_sclk;sclk=0
cpi R18,8		;8-бит
brlo data5110
ret
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
dgrett
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Вс дек 28, 2014 21:54:05

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение dgrett »

Уже похоже на правду. Сравните с портянкой из первого поста.
Что-то мне шепчет, что вместо многоточия у Вас то же самое для других строк.
Я всё-всё узнAю и стану профессором.
Аватара пользователя
Flash.#13
Держит паяльник хвостом
Сообщения: 965
Зарегистрирован: Сб апр 12, 2014 23:46:03
Откуда: Киев

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Flash.#13 »

Так и есть, где многоточие блок закраски строки в 8 пикселей, на всем ЖКИ 6 таких строк по 8, ну по байту, суммарно 6*8=48 пикселей, все как в мануале, а многоточие поставил чтобы не копипастить на форуме 6 одинаковых блоков кода, это же тестовая наброска, ей можно быть портянкой :)))

Код: Выделить всё

ldi R16,84
srtoka:
ldi R17,0b10101010
rcall write5110
dec R16
brne srtoka

ldi R16,84
srtoka2:
ldi R17,0b10101010
rcall write5110
dec R16
brne srtoka2
...
...
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
dgrett
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Вс дек 28, 2014 21:54:05

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение dgrett »

А счётчик строк организовать что не позволяет?
Я всё-всё узнAю и стану профессором.
Аватара пользователя
Flash.#13
Держит паяльник хвостом
Сообщения: 965
Зарегистрирован: Сб апр 12, 2014 23:46:03
Откуда: Киев

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Flash.#13 »

все позволяет, задача была включить, заценить как работает, плюшки потом :)
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
akl
Друг Кота
Сообщения: 4445
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение akl »

У Вас есть подпрограммы, т.е. нужна установка указателя стека.
dgrett
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Вс дек 28, 2014 21:54:05

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение dgrett »

Я всё-таки надеялся, что у него стек установлен ;)
Иначе как работать то?
Я всё-всё узнAю и стану профессором.
Demiurg
Это не хвост, это антенна
Сообщения: 1480
Зарегистрирован: Ср июн 25, 2008 15:19:44
Контактная информация:

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Demiurg »

Ну он мог и не вставлять инит стека, типа, только работа с дисплеем... :)))
Аватара пользователя
Flash.#13
Держит паяльник хвостом
Сообщения: 965
Зарегистрирован: Сб апр 12, 2014 23:46:03
Откуда: Киев

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Flash.#13 »

Да есть там инициализация стека, как бы оно иначе находило возврат из подпрограмм, ЖКИ норм., особенно после 1602 :wink:
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
Аватара пользователя
Starichok51
Модератор
Сообщения: 19054
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Starichok51 »

Паша, а что ты собираешься выводить на этот экран?
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Аватара пользователя
Flash.#13
Держит паяльник хвостом
Сообщения: 965
Зарегистрирован: Сб апр 12, 2014 23:46:03
Откуда: Киев

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Flash.#13 »

Пиксельный ЖКИ хочу использовать в проекте поискового радио устройства, делаю такую самоделку на базе радиомодуля LoRa 433Мгц 100мВт с GPS, на квадратном экране нокии лучше смотрится стрелочка с направлением и дистанция до маячка, чем на 1602. Конечно существуют готовые решения на базе сотовой сети и GPS, но там вес и размеры больше а еще абонплата, да и свое всегда веселее :beer:



Вот эскизная картинка планов:

Изображение
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
Аватара пользователя
a1000
Первый раз сказал Мяу!
Сообщения: 31
Зарегистрирован: Вс окт 18, 2020 19:01:52
Откуда: Харьковская область

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение a1000 »

Пришла зима, появилось свободное время повозиться с микроконтроллерами. Оригинального ничего не придумал, решил сделать большие часы с табло на WS2812b. Собираюсь ещё прикрутить датчик температуры на DS18B20, но это потом. Как истинный извращенец пишу на ASM.
Теперь о главном. Так-как цифры самопальные, нужна своя таблица кодировки. А где её хранить? Правильно в програмном флеше. Вышла вот такая строчка

Код: Выделить всё

.db	0xFC,0x84,0xDA,0xCE,0xA6,0x6E,0x7E,0xC4,0xFE,0xEE
Всё хорошо, но появилась необходимость в "пробеле". Добавил

Код: Выделить всё

.db	0xFC,0x84,0xDA,0xCE,0xA6,0x6E,0x7E,0xC4,0xFE,0xEE,0x00
Microchip Studio начала отчаянно ругаться на эту строку. Поиски в интернете и эксперименты помогли побороть эту проблему. Работает так

Код: Выделить всё

.db	0xFC,0x84,0xDA,0xCE,0xA6,0x6E,0x7E,0xC4,0xFE,0xEE,0x00,0x00
На сколько я понял, проблема была в следующем. Адресация програмной памяти идёт по два байта, по этому Microchip Studio жутко не нравилось, что число записываемых байт было нечётным. При попытке записи нечётного числа байт, студия как-то калечит последний байт, о чём она меня и предупреждала.
Прошу более знающих людей подтвердить или опровергнуть мои рассуждения.
Это Спарта! В смысле, ассемблер. Все ручками.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18669
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение ARV »

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

Мой уютный бложик... заходите!
Ответить

Вернуться в «AVR»