Например TDA7294

Форум РадиоКот • Просмотр темы - Программирование STM8
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт апр 18, 2024 13:44:49

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


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 2500 ]     ... , , , 78, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: STM8 и таймер 1
СообщениеДобавлено: Пн апр 09, 2018 21:17:02 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1351
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14054
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
STM8 не АРМ...
Ищи ответ ТУТ:
viewtopic.php?f=62&t=35768
:beer:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM8 и таймер 1
СообщениеДобавлено: Пн апр 09, 2018 21:28:22 
Нашел транзистор. Понюхал.

Карма: 4
Рейтинг сообщений: 4
Зарегистрирован: Вс авг 16, 2015 13:08:53
Сообщений: 173
Рейтинг сообщения: 0
Ну так темы основной нет по 8-кам вот и пишу сюда т.к. 8-ки в этом разделе есть.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM8 и таймер 1
СообщениеДобавлено: Пн апр 09, 2018 23:21:11 
Друг Кота
Аватар пользователя

Карма: 1
Рейтинг сообщений: 157
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 3328
Рейтинг сообщения: 0
Бубоник писал(а):
Ну так темы основной нет по 8-кам вот и пишу сюда т.к. 8-ки в этом разделе есть.
ARM микроконтроллеры 32-ух битные.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: STM8 и таймер 1
СообщениеДобавлено: Вт апр 10, 2018 06:04:26 
Нашел транзистор. Понюхал.

Карма: 4
Рейтинг сообщений: 4
Зарегистрирован: Вс авг 16, 2015 13:08:53
Сообщений: 173
Рейтинг сообщения: 0
Вообще-то я хотел узнать почему контроллер не записывает данные в регистр, а не его архитектуру. Да не там написал свой вопрос, но это же не значит что на него отвечать не надо. К тому же модераторам форума виднее где писать, а где нет.


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: STM8 и таймер 1
СообщениеДобавлено: Вт апр 10, 2018 07:02:25 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
хочется сделать как полагается, раз в документации указанно что TIM1_PSCR содержит 16 битное значение значит должен принимать 16 битные числа.

в документации надо загрузить два байта:
RM0016
Цитата:
17.3.3 Prescaler
The prescaler value is loaded through a preload register. The shadow register, which
contains the current value to be used, is loaded as soon as the LS byte has been written.
To update the 16-bit prescaler, load two bytes in separate write operations starting with the
MSB. Do not use the LDW instruction for this purpose as it writes the LSB first.
The new prescaler value is taken into account in the following period (after the next counter
update event).


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: STM8 и таймер 1
СообщениеДобавлено: Вт апр 10, 2018 09:47:23 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2694
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Бубоник писал(а):
Да не там написал свой вопрос, но это же не значит что на него отвечать не надо. К тому же модераторам форума виднее где писать, а где нет.
Да не обязан Вам никто отвечать. А если Вы жд кассе спросите расписание самолетов, тоже значит что кассир обязан ответить?

Бубоник писал(а):
раз в документации указанно что TIM1_PSCR содержит 16 битное значение значит должен принимать 16 битные числа.
Как Вы это представляете на 8ми битной шине?

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM8 и таймер 1
СообщениеДобавлено: Вт апр 10, 2018 10:43:00 
Прорезались зубы
Аватар пользователя

Карма: 1
Рейтинг сообщений: 28
Зарегистрирован: Ср мар 09, 2016 08:07:41
Сообщений: 206
Рейтинг сообщения: 0
Бубоник писал(а):
раз в документации указанно что TIM1_PSCR содержит 16 битное значение значит должен принимать 16 битные числа.
Как Вы это представляете на 8ми битной шине?


зато там буфер чтения с флеша 64-битный, так что никаких проблем. архитектура STM8 содержит множество 16-битных инструкций.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM8 и таймер 1
СообщениеДобавлено: Вт апр 10, 2018 10:57:49 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2694
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Наличие команды оперирующей 16 битами, не говорит о том 16 бит пишутся одновременно. Невозможно это на 8 битной шине данных.
Например, команда LDW выполняется за два цикла, против одного для команды LD.

Можно ради интереса попробовать записать такой командой что-то в 16 битный регистр с буфером (теневым регистром). Может адекватно сработает, если запись по факту пойдет в нужном порядке. Но наверное нет, я не видел в документации такого варианта записи.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM8 и таймер 1
СообщениеДобавлено: Вт апр 10, 2018 11:05:14 
Прорезались зубы
Аватар пользователя

Карма: 1
Рейтинг сообщений: 28
Зарегистрирован: Ср мар 09, 2016 08:07:41
Сообщений: 206
Рейтинг сообщения: 0
Наличие команды оперирующей 16 битами, не говорит о том 16 бит пишутся одновременно. Невозможно это на 8 битной шине данных.

при наличии конвейера не все так однозначно. CLRW, INCW. DECW например выполняются за один цикл.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM8 и таймер 1
СообщениеДобавлено: Вт апр 10, 2018 11:10:54 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2694
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
JackSmith писал(а):
не все так однозначно
Да, там шин не одна, я правда давно про них читал. Хотя для программиста как бы единое адресное пространство.
JackSmith писал(а):
CLRW, INCW. DECW например выполняются за один цикл.
Эти команды работают с регистровыми парами, то есть со сверхОЗУ. Пример неудачен. А конвеер тут совсем не причем.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM8 и таймер 1
СообщениеДобавлено: Вт апр 10, 2018 11:20:39 
Поставщик валерьянки для Кота

Карма: 20
Рейтинг сообщений: 253
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2090
Рейтинг сообщения: 0
Эти команды работают с регистровыми парами, то есть со сверхОЗУ.

Не важно с чем они работают, главное эти команды по 8-ми битной шине данные не гоняют, там сам оп-код может быть всего 1 байт.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM8 и таймер 1
СообщениеДобавлено: Вт апр 10, 2018 11:24:36 
Прорезались зубы
Аватар пользователя

Карма: 1
Рейтинг сообщений: 28
Зарегистрирован: Ср мар 09, 2016 08:07:41
Сообщений: 206
Рейтинг сообщения: 0
JackSmith писал(а):
CLRW, INCW. DECW например выполняются за один цикл.Эти команды работают с регистровыми парами, то есть со сверхОЗУ. Пример неудачен.

ну понятно.

возвращаясь к сути:
Бубоник писал(а):
раз в документации указанно что TIM1_PSCR содержит 16 битное значение значит должен принимать 16 битные числа.
Как Вы это представляете на 8ми битной шине?


в чем суть ваших претензий к LDW? даже если во время выполнения инструкции произойдет прерывание, сначала завершится инструкция и только потом пойдет переход к обработчику прерывания. или вы считаете что она не сможет загрузить 16-число в регистр I/O?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM8 и таймер 1
СообщениеДобавлено: Вт апр 10, 2018 11:37:06 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2694
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
А при чем тут размер ОП кода. Ну не записывает в память STM8 16 битные данные одновременно.

Кстати, Reflector, вы же активно участвовали в топике в разборе где код выполняется быстрее. Из Флеш или из ОЗУ. Не знаю, обратили внимание или нет. Там STM8 тоже фигурировал. Там код из ОЗУ выполнялся крайне медленно. Это объясняется тем что выборка инструкций идет с помощью 8ми битной шины. А для обасти флеш, какая -то более широкая шина данных.

JackSmith писал(а):
в чем суть ваших претензий к LDW?
У меня нет никаких претензий к системе команд STM8, не надо придумывать чего я не говорил ( и не думал тоже). Хотя ассемблер мне не нравится, какой-то он не такой. Но это дело привычки скорее всего и темы не касается.

JackSmith писал(а):
или вы считаете что она не сможет загрузить 16-число в регистр I/O?
Вопрос ТС шел про 16 битные регистры имеющие теневой регистр. На хрена надо было бы вводить теневой регистр, если бы команды умели писать 16 бит данных одновременно?
Хотя ТС скорее всего не это имел ввиду и задал вопрос не в тот раздел и некорректно. Он, я думаю, хотел чтобы комилятор адекватно компиллил код при присваивание 16 битным регистрам с теневым регистром. А компилятор, возможно, как раз и применил команду LDW.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM8 и таймер 1
СообщениеДобавлено: Вт апр 10, 2018 11:56:27 
Прорезались зубы
Аватар пользователя

Карма: 1
Рейтинг сообщений: 28
Зарегистрирован: Ср мар 09, 2016 08:07:41
Сообщений: 206
Рейтинг сообщения: 0
Вопрос ТС шел про 16 битные регистры имеющие теневой регистр. На хрена надо было бы вводить теневой регистр, если бы команды умели писать 16 бит данных одновременно?


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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM8 и таймер 1
СообщениеДобавлено: Вт апр 10, 2018 11:58:08 
Поставщик валерьянки для Кота

Карма: 20
Рейтинг сообщений: 253
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2090
Рейтинг сообщения: 0
А при чем тут размер ОП кода. Ну не записывает в память STM8 16 битные данные одновременно.

Да это понятно, я имел в виду, что если оп-код всего 1 байт, то понятно, что данные в команде не содержатся и ничего по шине слать не нужно, можно установкой одного бита сбросить сразу множество регистров, как, например, сбрасывается периферия у STM32. Просто в тот момент мне показалось, что почему бы такое же не провернуть с обычным ОЗУ, т.е. выставить адрес и сбросить сразу 2 байта, минуя шину :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM8 и таймер 1
СообщениеДобавлено: Вт апр 10, 2018 16:38:50 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2694
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Странно что тему до сих пор не перенесли.

Сделал некие эксперементы на STM8S103

Я не один сделал, по разному пробовал, но напишу один. Как говорил колобок "ничего не понимаю".

Вот такой код.
Код:
    static volatile unsigned short temp;
    *((unsigned short *)&TIM1_PSCRH)=0x1234;
    temp=*((unsigned short *)&TIM1_PSCRH);   
    PB_DDR=MASK_PB_DDR_DDR5; //PB5 выход
    if (temp==0x1234) PB_ODR=MASK_PB_ODR_ODR5;//выключим светодиод
    while(1);


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

Вот это *((unsigned short *)&TIM1_PSCRH)=0x1234; компиллится в
Код:
LDW       X, #0x1234
LDW       TIM1_PSCRH, X
Хотя референс запрещает использование ldw и, сразу не обратил внимание, так и пишет что ldw сначала пишет младший байт, а затем старший, как и читает. Светодиод гаснет. То есть считывает то что и записывал.

Сейчас еще кое- что попробую. Я тут чуток :beer: , тяжело пробовать.

Добавлено after 3 minutes 26 seconds:
Вставил между записью в прескаллер и чтением его в temp
Код:
  TIM1_CNTRH=1;
  TIM1_CNTRL=2;
Подумал, может теневые регистры общие и перестанет работать. Не фига. Тот же результат.
Плохо конечно, что сработало. Можно так ошибку пропустить в легкую. Пойду красноперку чистить, правда половину дочь отберет :)

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM8 и таймер 1
СообщениеДобавлено: Вт апр 10, 2018 17:07:22 
Нашел транзистор. Понюхал.

Карма: 4
Рейтинг сообщений: 4
Зарегистрирован: Вс авг 16, 2015 13:08:53
Сообщений: 173
Рейтинг сообщения: 0
Да не обязан Вам никто отвечать.
Бяку какую нибудь не по теме написать ОБЯЗАТЕЛЬНО кто нибудь найдется даже просить не надо.
А если Вы жд кассе спросите расписание самолетов, тоже значит что кассир обязан ответить?
Если на дверях будет вывеска про расписание самолетов естественно спрошу, почему бы и нет.
я думаю, хотел чтобы комилятор адекватно компиллил код при присваивание 16 битным регистрам с теневым регистром. А компилятор, возможно, как раз и применил команду LDW.
Естественно я это и имел ввиду и компилятор применил команду LDW, знал бы как на нем (IAR) ассемблер пишется написал на ассемблере.

Добавлено after 6 minutes 34 seconds:
Кстати если даже записать значения только в старший регистр TIM1_CNTRH то эффекта на контроллере не происходит пока не запишиться младший регистр TIM1_CNTRL


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM8 и таймер 1
СообщениеДобавлено: Вт апр 10, 2018 17:09:38 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2694
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Бубоник писал(а):
Бяку какую нибудь не по теме написать ОБЯЗАТЕЛЬНО кто нибудь найдется даже просить не надо.
Ну не по теме Вы как раз и начали. И в чем же бяка, что я написал, что никто не обязан Вам отвечать?

Бубоник писал(а):
Если на дверях будет вывеска про расписание самолетов естественно спрошу, почему бы и нет.
На дверях написано ARM.

Бубоник писал(а):
Естественно я это и имел ввиду, знал бы как на нем ассемблер пишется написал на нем
Зачем Вам ассм чтобы побайтно присвоить значение в регистр? Если хочется в одну строку - сделайте макрос.

----------
По поводу моих тестиков.
По идее регистр прескаллер должен был бы обновится при событии обновления таймера, а не сразу. Что-то вообще непонятно. На всякий случай перед изменением прескаллера, счетному регистру присваивал промежуточное значение, ничего не изменилось в результатах теста.

Бубоник писал(а):
Кстати если даже записать значения только в старший регистр TIM1_CNTRH то эффекта на контроллере не происходит пока не запишиться младший регистр TIM1_CNTRL
А так и должно быть. Непонятно почему у меня приведенный код работает.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM8 и таймер 1
СообщениеДобавлено: Вт апр 10, 2018 17:27:07 
Нашел транзистор. Понюхал.

Карма: 4
Рейтинг сообщений: 4
Зарегистрирован: Вс авг 16, 2015 13:08:53
Сообщений: 173
Рейтинг сообщения: 0
На дверях написано ARM.
А на вывеске список стм 8-ых.

Зачем Вам ассм чтобы побайтно присвоить значение в регистр?
Более оптимизированный код нужен. Я думал компилятор запилит код за несколько тактов, само минимально у меня получилось в районе ~12 при помощи компилятора.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM8 и таймер 1
СообщениеДобавлено: Вт апр 10, 2018 17:34:48 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2694
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Бубоник писал(а):
А на вывеске список стм 8-ых.
На какой? Раздел форума ARM. Тов. BOB51 указал Вам где про STM8 разговаривают.
Бубоник писал(а):
Более оптимизированный код нужен.
Система команд STM8 заточена по Си. Если Вы хотите более оптимизированный код, изучайте асм. Но на банальных операциях вряд ли получится короче, чем на Си.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 2500 ]     ... , , , 78, , , ...  

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


Кто сейчас на форуме

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


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

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


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y