Страница 366 из 400

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

Добавлено: Вс апр 11, 2021 12:21:42
Starichok51
С.Н. писал(а):переперобывал
чтобы получилось на до пробОвать, а не пробЫвать ...

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

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


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

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

А вот с точностью вычисления в препроцессоре пока нет решения.

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

Добавлено: Вс апр 11, 2021 14:19:08
dgrett
Отдайте пользователю дробное число А, потом преобразуйте его для удобства вычислений( *100)
С=А*100
В=(int(2345600/C)
Или как-то так.

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

Добавлено: Пт апр 23, 2021 20:40:30
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 клока, но в протеусе и на макетке стола дело не двинулось :?

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

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

Добавлено: Сб апр 24, 2021 08:05:39
dgrett
{ согласно мануалу}
В мануале процедура инициализации описана. Ресет там подольше длится, чем NOP. Это раз. А 2, 3, и тд пока не рассматриваем.

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

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

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

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

Добавлено: Сб апр 24, 2021 12:13:47
dgrett
В сети доуя примеров работы с этим стеклом на асме.

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

Добавлено: Вс апр 25, 2021 00:50:42
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

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

Добавлено: Вс апр 25, 2021 07:50:26
dgrett
Уже похоже на правду. Сравните с портянкой из первого поста.
Что-то мне шепчет, что вместо многоточия у Вас то же самое для других строк.

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

Добавлено: Вс апр 25, 2021 10:49:10
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
...
...

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

Добавлено: Вс апр 25, 2021 11:02:38
dgrett
А счётчик строк организовать что не позволяет?

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

Добавлено: Вс апр 25, 2021 12:10:06
Flash.#13
все позволяет, задача была включить, заценить как работает, плюшки потом :)

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

Добавлено: Вс апр 25, 2021 17:15:28
akl
У Вас есть подпрограммы, т.е. нужна установка указателя стека.

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

Добавлено: Вс апр 25, 2021 18:02:14
dgrett
Я всё-таки надеялся, что у него стек установлен ;)
Иначе как работать то?

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

Добавлено: Вс апр 25, 2021 19:50:11
Demiurg
Ну он мог и не вставлять инит стека, типа, только работа с дисплеем... :)))

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

Добавлено: Вс апр 25, 2021 23:38:44
Flash.#13
Да есть там инициализация стека, как бы оно иначе находило возврат из подпрограмм, ЖКИ норм., особенно после 1602 :wink:

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

Добавлено: Пн апр 26, 2021 15:08:04
Starichok51
Паша, а что ты собираешься выводить на этот экран?

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

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



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

Изображение

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

Добавлено: Сб дек 11, 2021 14:52:06
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 жутко не нравилось, что число записываемых байт было нечётным. При попытке записи нечётного числа байт, студия как-то калечит последний байт, о чём она меня и предупреждала.
Прошу более знающих людей подтвердить или опровергнуть мои рассуждения.

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

Добавлено: Сб дек 11, 2021 15:55:05
ARV
ну не знаю... в древние времена моего увлечения ассемблером вроде как студия просто дописывала к строке "лишний" нулевой байт, и не ругалась, и ничего не калечила... хотя времена настолько древние, что память может и подвести.