Easyelectronics.ru • Просмотр темы - Ассемблер STM8

Easyelectronics.ru

Электроника для всех
Текущее время: 17 авг 2018, 14:00

Часовой пояс: UTC + 5 часов



    • JLCPCB - Прототипы 10 PCBs всего за 2$ (100*100mm, 2-layer)
    • Как мы делаем платы, смотрите на YouTube
    • Крупнейшая китайская фабрика прототипов. 300000+ заказчиков и 10000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин комплектующих.

Начать новую тему Ответить на тему  [ Сообщений: 89 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Re: Ассемблер STM8
СообщениеДобавлено: 26 янв 2013, 00:43 
Старожил

Зарегистрирован: 29 окт 2010, 23:55
Сообщения: 328
BigLeha писал(а):
Вот тут посмотреть надо ;)
Супер.

_________________
http://angel5a.narod.ru - LPC/STM8/anything yet?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ассемблер STM8
СообщениеДобавлено: 26 янв 2013, 12:53 
Старожил

Зарегистрирован: 23 дек 2012, 16:46
Сообщения: 297
Откуда: Новый Уренгой
Вот тут только спрашивают.
И ниодин из ответов не годится для применения в STM8, так что вопрос актуальный.

_________________
vk.com/casusnur


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ассемблер STM8
СообщениеДобавлено: 26 янв 2013, 13:56 
Старожил
Аватара пользователя

Зарегистрирован: 17 апр 2010, 08:38
Сообщения: 4838
Откуда: Усинск, республика Коми
casus писал(а):
Вот тут только спрашивают.
И ниодин из ответов не годится для применения в STM8, так что вопрос актуальный.

Там есть решения, посмотрите внимательней. Нужно, правда, переписать под другую систему команд. Но алгоритмы там как на ладони, прям в ответах лежат ;)

_________________
хаос это непознанный порядок


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ассемблер STM8
СообщениеДобавлено: 26 янв 2013, 19:02 
Старожил

Зарегистрирован: 04 окт 2012, 00:23
Сообщения: 2491
Откуда: Москва
Цитата:
Леплю навигацию для лазерной пушки против комаров, табличные значения в этом случае не годятся

Я понимаю , что в Новом Уренгое это просто необходимая вещь, но по-моему там и по табличным значениям можно, всё равно хрен промахнешься.
Но , если слепите , брошу AVR - перейду на STM.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ассемблер STM8
СообщениеДобавлено: 31 янв 2013, 12:57 
Заглядывает иногда

Зарегистрирован: 03 дек 2012, 17:12
Сообщения: 127
dosikus_2 писал(а):
casus писал(а):
Леплю навигацию для лазерной пушки против комаров,.


Жесть. Взял на заметку...


реально жесть, если конечно не шутка)))
Интересно, а обнаружение цели пассивное, по звуку?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ассемблер STM8
СообщениеДобавлено: 01 фев 2013, 00:50 
Старожил

Зарегистрирован: 23 дек 2012, 16:46
Сообщения: 297
Откуда: Новый Уренгой
Цитата:
Интересно, а обнаружение цели пассивное, по звуку?

Переделываю навигацию ибо медленно. Принцип тот же что и трэкинг в CD-ROM, цель подсвечивается, навигация на свет.

Опять есть вопрос: при входе в прерывания, регистры ложатся в стек, при выходе выковыреваются.
Можно ли какнить пропустить встроенный pop-push?

_________________
vk.com/casusnur


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ассемблер STM8
СообщениеДобавлено: 01 фев 2013, 11:48 
Старожил

Зарегистрирован: 06 фев 2011, 15:16
Сообщения: 613
Откуда: Челябинск
casus писал(а):
Цитата:
Интересно, а обнаружение цели пассивное, по звуку?

Переделываю навигацию ибо медленно. Принцип тот же что и трэкинг в CD-ROM, цель подсвечивается, навигация на свет.

Опять есть вопрос: при входе в прерывания, регистры ложатся в стек, при выходе выковыреваются.
Можно ли какнить пропустить встроенный pop-push?

Нет. А зачем?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ассемблер STM8
СообщениеДобавлено: 01 фев 2013, 15:04 
Старожил

Зарегистрирован: 29 окт 2010, 23:55
Сообщения: 328
casus писал(а):
Можно ли какнить пропустить встроенный pop-push?
Работать в режиме сна "только прерывания".

_________________
http://angel5a.narod.ru - LPC/STM8/anything yet?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ассемблер STM8
СообщениеДобавлено: 14 фев 2013, 05:50 
Старожил

Зарегистрирован: 23 дек 2012, 16:46
Сообщения: 297
Откуда: Новый Уренгой
Очередная проблема, теперь со страницами.
Контроллер STM8S208C6
Для конфига beCAN потребовалось выбрать нужную страницу, а именно 06, выбрал
правда в мануале рег. выбора страницы описан как CAN_PSR, а в .inc как CAN_FPSR
Код:
;настройка CAN
   bset CLK_PCKENR2,#7 ;Вкл тактирование CAN
   bset CAN_MCR,#0 ;INRQ=1 Запрос инициализации
INAKWait
   btjf CAN_MSR,#0,INAKWait ;Ждем установки бита INAK
   mov  CAN_FPSR,#$06 ; Страница 6(конфиг)
   mov  CAN_BTR1,#$47 ; SWJ=1 BRP=7 (125kbaud)
   mov  CAN_BTR2,#$3A ; CLKS=0 BS2=3(+1) BS1=10(+1)

теперь осталось записать CAN_BTR1 и CAN_BTR2, но куда их засунуть не знаю
в CAN page mapping их адреса подписаны как 0x04 и 0x05, но это же ОЗУ!! должно же быть какоето смещение.
так вот, как правильно записать данные в регистры CAN_BTR1 и CAN_BTR2, которые не описаны в STM8S208C6.inc?

_________________
vk.com/casusnur


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ассемблер STM8
СообщениеДобавлено: 14 фев 2013, 17:03 
Старожил

Зарегистрирован: 23 дек 2012, 16:46
Сообщения: 297
Откуда: Новый Уренгой
разобрался, спасибо ARMag
Код:
   mov  CAN_FPSR,#$06 ; Страница 6(конфиг)
   mov  CAN_P4,#$47 ; SWJ=1 BRP=7 (125kbaud)
   mov  CAN_P5,#$3A ; CLKS=0 BS2=3(+1) BS1=10(+1)

_________________
vk.com/casusnur


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ассемблер STM8
СообщениеДобавлено: 14 фев 2013, 17:43 
Старожил
Аватара пользователя

Зарегистрирован: 28 фев 2011, 19:28
Сообщения: 3522
Откуда: Белгород РФ
ILYAUL писал(а):
Но , если слепите , брошу AVR - перейду на STM.


Вспомнился "обитель зла", там тоже лазером гоняли, под управлением компьютера, правда людей, но и для комаров сойдет :) Киевлянка Мила Йовович выжила, славяне вообще крутые

Изображение

:)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ассемблер STM8
СообщениеДобавлено: 07 ноя 2014, 20:13 
Старожил

Зарегистрирован: 23 дек 2012, 16:46
Сообщения: 297
Откуда: Новый Уренгой
Выкладываю код для чтения данных для джойстика PlayStation2 может кому пригодится.
Джой подключен к SPI интерфейсу PB7, PB6, PB5 выбор кристала на PD4, ACK не подключен вобще.
PB0..3 и PD0..3 светодиоды. У меня подключен кварц, но можно и не ставить (инит hse нужно будет пропустить).
Макетка питается от программатора SWIM 3v3
Работает все так: камень передает джойстику данные, одновременно принимает по прерыванию и сохраняет в озу.
После того как отправит джойстику 32 байта, выключает джойстик.
По прерыванию таймера выводит инверсное состояние из озу на диоды, и запускает повторное чтение данных.
В программе вывод на диоды идет с адреса $0014, это 4 боковых шифта и круглые клавиши.
Show

Вложение:
joylay.JPG
joylay.JPG [ 52.05 Кб | Просмотров: 8022 ]

_________________
vk.com/casusnur


Последний раз редактировалось casus 07 дек 2014, 21:58, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ассемблер STM8
СообщениеДобавлено: 07 дек 2014, 20:58 
Старожил

Зарегистрирован: 23 дек 2012, 16:46
Сообщения: 297
Откуда: Новый Уренгой
Вечер добрый. Пытаюсь победить радиомодули nrf24l01+
в программе организовал передачу состояния вывода D1 в радио и прием из радио и установка состояния вывода С3
в железе использовал FT232RL как источник-приемник данных, STM8L151K4, и два радиомодуля nrf24l01+, один как передатчик, другой приемник.
И вот собственно какая проблема возникла. Данные идут только на скорости 300бод. Уже убрал все задержки, оставил только те, без которых модули не работают.
Кто сталкивался с этими модулями, помогите разогнать канал передачи до 9600 бод.
Встроенный USART использовать нехочу изза задержки в 1 байт.
Show

модули взял тут: http://avrobot.ru/product_info.php?products_id=610


Вложения:
Комментарий к файлу: отзеркаленная плата в спринте
usbdualwire.rar [19.41 Кб]
Скачиваний: 131

_________________
vk.com/casusnur


Последний раз редактировалось casus 07 дек 2014, 23:21, всего редактировалось 3 раз(а).
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ассемблер STM8
СообщениеДобавлено: 07 дек 2014, 21:30 
Старожил

Зарегистрирован: 27 апр 2013, 13:53
Сообщения: 740
Если озадачены эффективностью использования стека и делаете код на ассемблере, то Форт хорошее решение :)
Гляньте, например этот eForth4STM8S
Тригонометрические функции, часто вычисляют таблично

P.S.C радиомодулем есть пример работы в amForth/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ассемблер STM8
СообщениеДобавлено: 07 дек 2014, 21:57 
Старожил

Зарегистрирован: 23 дек 2012, 16:46
Сообщения: 297
Откуда: Новый Уренгой
Спасибо, но примеры опять же с USART, необходим полный дуплекс, иначе не использовал бы два модуля.
USART использовать я планировал только в том случае, если дойду до отчаянья, но надеюсь на победу.
со стеком на ассемблере стараюсь не работать, хватает оперативки - таже область, но в разы удобнее, и незаменимо в случае, когда прерывание происходит в прерывании, а в нем еще одно. тогда использовать стек для хранения данных сложно, т.к. трудно предусмотреть поведение программы. если используется многозадачность камня, как в этом случае, тоесть работа на два модуля, и задержка выключения диодов без зацикливания. ветвление напоминает доширак))
а железное использование стека тут на автомате, например при операторах call - ret.
да и пишу на асме только потому что на си неумею. читать читаю а написать немогу, максимум чужое поправить, и тут тоже свои плюсы есть. ассемблерный код занимает в два-три раза меньше места и быстрее работает.

где можно почитать про Auto ACK на nrf24l01+? как оно работает?

p.s. для тригонометрических функций использую разложение на ряд Тейлора.

_________________
vk.com/casusnur


Последний раз редактировалось casus 07 дек 2014, 23:28, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ассемблер STM8
СообщениеДобавлено: 07 дек 2014, 23:10 
Старожил

Зарегистрирован: 02 дек 2010, 13:52
Сообщения: 4406
Откуда: п. Борок, Ярославская область
Ребят - с тригонометрией смотрите в сторону рядов Тейлора. Все тригонометрические (и многие другие) функции имеют разложение, длина которого зависит от требуемой точности. Но это трудоемко и затратно по оперативе (если например факториалы считать рекурсивно) и медленно (если считать без рекурсии).

Табличные расчеты тоже не стоит выбрасывать из виду. Таблицы бывают разной точности, и есть еще такое понятие как интерполяция. Если сделать полином 3-й или 4-й степени по соседним элементам таблицы, то точность определения значения функции будет очень даже высокой. Вопрос лишь в реализации интерполяции. Линейную очень просто реализовать. С кубической - уже намного сложнее и медленнее.

ИМХО в случае с линейной интерполяцией табличных значений и 16бит fixed-point - то будет быстрее реализации рядов Тейлора. В случае, когда надо float (или того хуже - double) - то ряды Тейлора дадут большее быстродействие и меньшие затраты ресурсов, чем таблица с интерполяцией полиномом 4-й степени.

Как-то так...

_________________
Ёж птица гордая, пока не пнешь - не полетит.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ассемблер STM8
СообщениеДобавлено: 07 дек 2014, 23:20 
Старожил

Зарегистрирован: 17 сен 2013, 13:53
Сообщения: 3157
Таблицы Брадиса в в жизнь! :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ассемблер STM8
СообщениеДобавлено: 08 дек 2014, 14:06 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 4824
KPG писал(а):
Если озадачены эффективностью использования стека и делаете код на ассемблере, то Форт хорошее решение :)

Ну как же без вездесущего форта ... :))))

KPG писал(а):
P.S.C радиомодулем есть пример работы в amForth/

То есть сам ты не работал и не знаешь...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ассемблер STM8
СообщениеДобавлено: 08 дек 2014, 20:27 
Старожил

Зарегистрирован: 02 дек 2010, 13:52
Сообщения: 4406
Откуда: п. Борок, Ярославская область
Фтопку форт... не знаю как кому, а я с ним что-то не сдружился. Годен разве что для выполнения кода из оперативы на AVR или других мк, где это невозможно сделать аппаратно. Но ведь помимо форта есть целая куча других языков, которые продуцируют удобный байт-код. Да тот же BASIC.

А STM8 таки позволяет исполнять код из RAM аппаратно, хоть и медленнее. И avr в этом плане весьма не кошерно смотрится. Правда исполнять код из оперативы далеко не всегда надо...

_________________
Ёж птица гордая, пока не пнешь - не полетит.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ассемблер STM8
СообщениеДобавлено: 17 дек 2014, 17:34 
Старожил

Зарегистрирован: 23 дек 2012, 16:46
Сообщения: 297
Откуда: Новый Уренгой
подскажите как в пару строк сложить слово и байт.
например в индексном регистре у меня имеется адрес ячейки озу, также есть один байт смещения, не важно в озу или аккумуляторе.
я хочу получить указатель на нужную мне ячейку путем сложения индекса со смещением, но компилятор меня все время посылает.
например:
add - сложение байт
adc - сложение байт с переносом
addw - сложение слов к индексам
а как сложить слово к байту в пару строк незнаю, приходится городить с обменом
например:
Код:
addrh   equ $050
addrl   equ $051 ; объявем переменные и расположим их в памяти, это будет адрес

   ldw   y,   #bs   ; в Y адрес BS, в BS размер массива
   ldw addrh, y   ; в addrh:addrl значение регистра Y, тоесть адрес ячейки памяти BS
   ld   a,   bs   ; загрузим размер массива в аккумулятор
   add   a,   addrl   ; сложим адрес с размером и получим указатель на последнюю ячейку массива
   ld   addrl,   a   ; выгрузим результат, теперь в addrh:addrl указатель на ячейку


и собственно копирование
Код:
mcopy
   ld   a,   (x)
   ld   ($10,x),   a
   ld   ($22,x),   a                  ; копируем содержимое буфера b в буферы r & a
   incw   x
   cpw      x, addrh
   jrule mcopy


и это еще не все. надо инкрементировать addrh если используется перенос. в итоге я трачу только в этом случае 9 тактов, а при частоте 16МГц это 562.5 наносекунд, а в случае с переносом больше микросекунды

_________________
vk.com/casusnur


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ассемблер STM8
СообщениеДобавлено: 21 окт 2016, 10:51 
Старожил

Зарегистрирован: 23 дек 2012, 16:46
Сообщения: 297
Откуда: Новый Уренгой
Всем привет, пытаюсь прикрутить к STM8S103F3 инкрементальный энкодер.
Энкодер подключен к портам C6 и C7 с подтяжкой. Альтернативная функция этих портов tim1_ch1 и tim1_ch2.
Сделал инит по референс мануалу, не хочет считать ни при каких обстоятельствах. Чё ему надо?
Я кручу ротор, а в tim1_cntrl значения не изменяются. Может есть у кого куски кода, можно и на си.
Код:
   bset TIM1_CCMR1, #0   ; //CC1 channel is configured as input, IC1 is mapped on TI1FP1
   bset TIM1_CCMR2, #0   ; //CC2 channel is configured as input, IC2 is mapped on TI2FP2
   bset TIM1_CCER1, #1
   bset TIM1_CCER1, #5    ; //CC2P,CC1P: Capture/compare 2 output polarity
   bset TIM1_SMCR,    #0   ;Encoder mode 1 - Counter counts up or down on TI2FP2 edge depending on TI1FP1 level
   bset TIM1_SMCR,    #1
   bset TIM1_CR1,      #0    ; //включаем таймер

Программный обработчик писать нехочется когда железный имеется.

разобрался. все еще страшнее чем кажется. вобщем нужно делать ремап на альтернативную функцию, сделал с помощью ST Visual Programmer и все заработало

_________________
vk.com/casusnur


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ассемблер STM8
СообщениеДобавлено: 09 ноя 2016, 16:29 
Старожил

Зарегистрирован: 23 дек 2012, 16:46
Сообщения: 297
Откуда: Новый Уренгой
Всем привет. Поделитесь массивом Брадиса для синуса в 16 битном формате. В поиске только человеческие, не особо хочется писать конвертор в 16 битный формат, без знака, в градусах, т.к. наверняка уже где-то есть готовые. Хочу вписать ее в SPI флеш на 128кб и пихать в шим

_________________
vk.com/casusnur


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ассемблер STM8
СообщениеДобавлено: 09 ноя 2016, 17:29 
Старожил
Аватара пользователя

Зарегистрирован: 06 ноя 2013, 16:07
Сообщения: 560
Откуда: Германия
А что такое "16 битный формат"? И с каким шагом?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ассемблер STM8
СообщениеДобавлено: 09 ноя 2016, 17:36 
Только пришел

Зарегистрирован: 20 июн 2016, 15:31
Сообщения: 8
В Exele сформировать и выгрузить ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ассемблер STM8
СообщениеДобавлено: 10 ноя 2016, 03:56 
Старожил

Зарегистрирован: 23 дек 2012, 16:46
Сообщения: 297
Откуда: Новый Уренгой
dev писал(а):
А что такое "16 битный формат"? И с каким шагом?

16 битный имеется ввиду это значения sin(x) градусов, размазанных по адресам от 0х0000 до 0xFFFF, где x- адрес,
а 16 битное значение по этому адресу - результат функции.
без знака, тоесть значение 0х0000 это -1, а 0xFFFF это 1,
по задумке стремлюсь к тому что никакие расчеты нафик не нужны, ответ лежит по нужному адресу.
шаг получается 360/65536=0,0054931640625 градуса

тоже думал про эксель, щас уперлось в то что немогу найти шестизначные таблицы, в нете везде 4х значные.

разобрался, сгенерил через функции екселевские спасибо

_________________
vk.com/casusnur


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 89 ]  На страницу Пред.  1, 2, 3, 4  След.

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB