чтобы получилось на до пробОвать, а не пробЫвать ...С.Н. писал(а):переперобывал
Ассемблер (ASM) для AVR в вопросах и ответах
- Starichok51
- Модератор
- Сообщения: 19054
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
- Реклама
-
С.Н.
- Потрогал лапой паяльник
- Сообщения: 307
- Зарегистрирован: Пн окт 26, 2020 08:37:51
- Откуда: г.Волгоград
Re: Ассемблер (ASM) для AVR в вопросах и ответах
[uquote="Starichok51",url="/forum/viewtopic.php?p=4013790#p4013790"]
не удобно получилось...согласен.
Нашел сам только что решение по второму вопросу:
#define A 8.1
..
.equ B=int(23456/A)
Проверил - работает.
А вот с точностью вычисления в препроцессоре пока нет решения.
чтобы получилось на до пробОвать, а не пробЫвать ...[/uquote]С.Н. писал(а):переперобывал
не удобно получилось...согласен.
Нашел сам только что решение по второму вопросу:
#define A 8.1
..
.equ B=int(23456/A)
Проверил - работает.
А вот с точностью вычисления в препроцессоре пока нет решения.
ФУОЗ на платформе Ардуино: https://radiokot.ru/forum/viewtopic.php ... 6#p4366626
ВК - "ФУОЗ на микроконтроллере Atmega328P (МПСЗ)"
ВК - "ФУОЗ на микроконтроллере Atmega328P (МПСЗ)"
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Отдайте пользователю дробное число А, потом преобразуйте его для удобства вычислений( *100)
С=А*100
В=(int(2345600/C)
Или как-то так.
С=А*100
В=(int(2345600/C)
Или как-то так.
Я всё-всё узнAю и стану профессором.
- Flash.#13
- Держит паяльник хвостом
- Сообщения: 965
- Зарегистрирован: Сб апр 12, 2014 23:46:03
- Откуда: Киев
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Извиняюсь за баян, кто-то пробовал ЖКИ ч/б нокии 5110 на AVR? Собрал схемку в протеусе, делаю тестовый код для самых базовых команд, а дело не едет, даже зажечь все сегменты черным не получается, что-то упускаю.
Согласно мануалу для общения используется SPI, накидал тестовый софтварный обмен, в мануале пишется, данные считываются при подъеме с лог0 на лог 1 клока, но в протеусе и на макетке стола дело не двинулось 

Код: Выделить всё
;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
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
Re: Ассемблер (ASM) для AVR в вопросах и ответах
{ согласно мануалу}
В мануале процедура инициализации описана. Ресет там подольше длится, чем NOP. Это раз. А 2, 3, и тд пока не рассматриваем.
В мануале процедура инициализации описана. Ресет там подольше длится, чем NOP. Это раз. А 2, 3, и тд пока не рассматриваем.
Я всё-всё узнAю и стану профессором.
- Реклама
- Flash.#13
- Держит паяльник хвостом
- Сообщения: 965
- Зарегистрирован: Сб апр 12, 2014 23:46:03
- Откуда: Киев
Re: Ассемблер (ASM) для AVR в вопросах и ответах
С протеусом удалось договорится используя пример из компонента ЖКИ и отладочный виртуальный SPI, подглядел тайминги и задержки, после чего виртуальная среда начала рисовать примерно то же самое что в коде, но на реальном ЖКИ изображения пока нет. Продолжаю мучить

Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
Re: Ассемблер (ASM) для AVR в вопросах и ответах
В сети доуя примеров работы с этим стеклом на асме.
Я всё-всё узнAю и стану профессором.
- Flash.#13
- Держит паяльник хвостом
- Сообщения: 965
- Зарегистрирован: Сб апр 12, 2014 23:46:03
- Откуда: Киев
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Следуя примеру выяснилось что сам ЖКИ внутри не касался платы, поэтому не грузился
Подогнув контакты проблема не отображения была решена, но видать индикатор не новый, поле не полное, и отображаются 38 строк из 48, а так работает.

Подогнув контакты проблема не отображения была решена, но видать индикатор не новый, поле не полное, и отображаются 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, монтажка
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Уже похоже на правду. Сравните с портянкой из первого поста.
Что-то мне шепчет, что вместо многоточия у Вас то же самое для других строк.
Что-то мне шепчет, что вместо многоточия у Вас то же самое для других строк.
Я всё-всё узнAю и стану профессором.
- Flash.#13
- Держит паяльник хвостом
- Сообщения: 965
- Зарегистрирован: Сб апр 12, 2014 23:46:03
- Откуда: Киев
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Так и есть, где многоточие блок закраски строки в 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, монтажка
Re: Ассемблер (ASM) для AVR в вопросах и ответах
А счётчик строк организовать что не позволяет?
Я всё-всё узнAю и стану профессором.
- Flash.#13
- Держит паяльник хвостом
- Сообщения: 965
- Зарегистрирован: Сб апр 12, 2014 23:46:03
- Откуда: Киев
Re: Ассемблер (ASM) для AVR в вопросах и ответах
все позволяет, задача была включить, заценить как работает, плюшки потом 
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
Re: Ассемблер (ASM) для AVR в вопросах и ответах
У Вас есть подпрограммы, т.е. нужна установка указателя стека.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Я всё-таки надеялся, что у него стек установлен 
Иначе как работать то?
Иначе как работать то?
Я всё-всё узнAю и стану профессором.
-
Demiurg
- Это не хвост, это антенна
- Сообщения: 1480
- Зарегистрирован: Ср июн 25, 2008 15:19:44
- Контактная информация:
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Ну он мог и не вставлять инит стека, типа, только работа с дисплеем... 
- Flash.#13
- Держит паяльник хвостом
- Сообщения: 965
- Зарегистрирован: Сб апр 12, 2014 23:46:03
- Откуда: Киев
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Да есть там инициализация стека, как бы оно иначе находило возврат из подпрограмм, ЖКИ норм., особенно после 1602 
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
- Starichok51
- Модератор
- Сообщения: 19054
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Паша, а что ты собираешься выводить на этот экран?
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
- Flash.#13
- Держит паяльник хвостом
- Сообщения: 965
- Зарегистрирован: Сб апр 12, 2014 23:46:03
- Откуда: Киев
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Пиксельный ЖКИ хочу использовать в проекте поискового радио устройства, делаю такую самоделку на базе радиомодуля LoRa 433Мгц 100мВт с GPS, на квадратном экране нокии лучше смотрится стрелочка с направлением и дистанция до маячка, чем на 1602. Конечно существуют готовые решения на базе сотовой сети и GPS, но там вес и размеры больше а еще абонплата, да и свое всегда веселее
Вот эскизная картинка планов:

Вот эскизная картинка планов:
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
- a1000
- Первый раз сказал Мяу!
- Сообщения: 31
- Зарегистрирован: Вс окт 18, 2020 19:01:52
- Откуда: Харьковская область
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Пришла зима, появилось свободное время повозиться с микроконтроллерами. Оригинального ничего не придумал, решил сделать большие часы с табло на WS2812b. Собираюсь ещё прикрутить датчик температуры на DS18B20, но это потом. Как истинный извращенец пишу на ASM.
Теперь о главном. Так-как цифры самопальные, нужна своя таблица кодировки. А где её хранить? Правильно в програмном флеше. Вышла вот такая строчка
Всё хорошо, но появилась необходимость в "пробеле". Добавил
Microchip Studio начала отчаянно ругаться на эту строку. Поиски в интернете и эксперименты помогли побороть эту проблему. Работает так
На сколько я понял, проблема была в следующем. Адресация програмной памяти идёт по два байта, по этому Microchip Studio жутко не нравилось, что число записываемых байт было нечётным. При попытке записи нечётного числа байт, студия как-то калечит последний байт, о чём она меня и предупреждала.
Прошу более знающих людей подтвердить или опровергнуть мои рассуждения.
Теперь о главном. Так-как цифры самопальные, нужна своя таблица кодировки. А где её хранить? Правильно в програмном флеше. Вышла вот такая строчка
Код: Выделить всё
.db 0xFC,0x84,0xDA,0xCE,0xA6,0x6E,0x7E,0xC4,0xFE,0xEE
Код: Выделить всё
.db 0xFC,0x84,0xDA,0xCE,0xA6,0x6E,0x7E,0xC4,0xFE,0xEE,0x00
Код: Выделить всё
.db 0xFC,0x84,0xDA,0xCE,0xA6,0x6E,0x7E,0xC4,0xFE,0xEE,0x00,0x00
Прошу более знающих людей подтвердить или опровергнуть мои рассуждения.
Это Спарта! В смысле, ассемблер. Все ручками.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18669
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Ассемблер (ASM) для AVR в вопросах и ответах
ну не знаю... в древние времена моего увлечения ассемблером вроде как студия просто дописывала к строке "лишний" нулевой байт, и не ругалась, и ничего не калечила... хотя времена настолько древние, что память может и подвести.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!


