6 / 6 / 0
Регистрация: 11.07.2011
Сообщений: 122
|
|||||||||||
1 | |||||||||||
Настройка ЦАП в STM8L-Discovery13.10.2015, 12:26. Показов 5141. Ответов 22
Метки нет (Все метки)
Здравствуйте, обучаюсь программированию МК с помощью stm8l-Discovery.
Возникла проблема при настройке ЦАП. Необходимо подать на ножку PB4 определенное значение (ни важно какое). Для задание значения выходного регистра использую регистр DAC_DHR8, который передает это значение в выходной регистр по триггеру (второй способ ). Триггер использую программный SWTRIG, вот тут и возникла проблема. Чтобы инициировать передачу нужно установить бит SWTRIG1 (судя по тому что написано в руководстве). Но когда я его хочу установить таким образом
Как правильно нужно устанавливать бит SWTRIG1 ? В руководстве написано про этот бит s/r в чем отличие от w/r ? Добавлено через 7 минут Вся программа:
0
|
13.10.2015, 12:26 | |
Ответы с готовыми решениями:
22
Переключить тактовый генератор с HSI на LSI (STM8l-Discovery) ds18b20 и STM8L – Discovery. hd44780, stm8l discovery STM8L-discovery + HCSR04 STM8L Discovery + COM Port |
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
|
|
13.10.2015, 13:00 | 2 |
0
|
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
|
||||||
13.10.2015, 13:08 | 3 | |||||
http://www.st.com/web/en/resou... 218714.pdf страница 238 рассказывает нам, что бит SWTRIG1 находится в регистре DAC_SWTRIGR, а если покопаться в папке STM8/inc, то в инклудах можно найти описание структуры регистра DAC_SWTRIGR и даже вот такие дефайны:
1
|
6 / 6 / 0
Регистрация: 11.07.2011
Сообщений: 122
|
|
13.10.2015, 13:38 [ТС] | 4 |
_SayHelli, SWTRIGR это регистр (DAC_SWTRIGR), а SWTRIG1, 2
это его биты (судя по руководству).
0
|
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
|
|
13.10.2015, 13:41 | 5 |
мой ответ Вы похоже решили проигнорировать, печалька
0
|
6 / 6 / 0
Регистрация: 11.07.2011
Сообщений: 122
|
||||||
13.10.2015, 13:47 [ТС] | 6 | |||||
спасибо за намек, Витальич , а в каком файле вы нашли этот дефайн ?
Я вот открываю файл: stm8\inc\iostm8l152c6.h (для моего процессора) и там нет таких хидеров касательно ЦАП. Есть только такие
0
|
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
|
|
13.10.2015, 13:48 | 7 |
1. Какой компилятор используете?
2. Полный текст ошибки?
0
|
6 / 6 / 0
Регистрация: 11.07.2011
Сообщений: 122
|
||||||
13.10.2015, 13:55 [ТС] | 8 | |||||
Витальич,
Компилятор IAR (на си). В следующей строке выводит ошибку:
Error[Pe020]: identifier "DAC_SWTRIGR_SWTRIG1" is undefined D:\Обучение\stm8l\6_ADC_value\main.c 21
0
|
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
|
|
13.10.2015, 14:23 | 9 |
Судя по заголовочному файлу у Вас есть только бит DAC_SWTRIGR_SWTRIG
0
|
6 / 6 / 0
Регистрация: 11.07.2011
Сообщений: 122
|
||||||
13.10.2015, 14:29 [ТС] | 10 | |||||
Витальич,
Возможно это связано с тем, что у меня иар стоит бесплатный на 8К. А так я попробовал вбить строку:
Error[Pe020]: identifier "DAC" is undefined
0
|
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
|
|
13.10.2015, 15:49 | 11 |
Залейте архив с проектом, посмотрю
0
|
6 / 6 / 0
Регистрация: 11.07.2011
Сообщений: 122
|
|
13.10.2015, 16:03 [ТС] | 12 |
Витальич,
Хорошо, заранее большое спасибо. (хотел предупредить: у меня название проекта ни совсем правильное вместо ADC надо было DAC поставить)
0
|
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
|
||||||
13.10.2015, 16:24 | 13 | |||||
Вот так:
0
|
6 / 6 / 0
Регистрация: 11.07.2011
Сообщений: 122
|
|||||||||||||||||||||
13.10.2015, 16:37 [ТС] | 14 | ||||||||||||||||||||
Витальич,
пробовал сделать
Error[Pe137]: expression must be a modifiable lvalue Тактирование ЦАП и компаратора1:
и подключение буфера на выходе:
0
|
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
|
|
14.10.2015, 12:08 | 15 |
Сообщение было отмечено raxp как решение
Решение
Привет. На изи не помогли таки да ладно их ...
Что то мало я смог найти по даку , а документацию изучать влом, нет у меня STM8L только STM8S, поэтому пошел по пути настоящих кодеров, скачал либу с офф сайта и собрал проект под IAR. Офф либа это обертка над периферией МК, функции в ней названы более, менее понятны, можно и без документации разобраться. ВНИМАНИЕ есть нюансы. 1. Код в майне работает/не работает не знаю, негде проверить. 2. Я использовал STD и не подключал кроме дака остальную периферию, для подключения нужного модуля добавляйте в проект нужный Вам си файл, h файл подцепится автоматом
2
|
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
|
|
14.10.2015, 23:21 | 16 |
foxis, Шаблон я сделал правильный, инфа 146%, а вот что получилось с кодом? опубликуйте, плз.
ВНИМАНИЕ: 1. аккуратней с настройкой проекта (не знаешь не лезь ) Пути в нём относительные запустится с любого места. 2. Если не будет хватать памяти, прошивку релиза на 20% можно сократить. Как? Пишите, поправлю проект. Правда вырубится GTAG. P.S. Я тут на ебеи P.P.S. по либе могу много рассказать по серии "S", много модулей перевел с неё на прямое управление через регистры, с другой стороны беглый взгляд по "L" говорит, что внешние прерывания работают совсем по другому (в "S" серии руки бы оторвал за то что они нагородили) здесь логичней и почти как у взрослых STM32, есть отличия и в других модулях. Кстати, Либа гарантирует перенос кода, если верить рекламе, я не верю P.P.P.S. И на хрена Вы взялись за STM8L, я то понятно зачем, оптимизация производства, а Вам на хрена этот геморой?
0
|
6 / 6 / 0
Регистрация: 11.07.2011
Сообщений: 122
|
||||||
15.10.2015, 12:08 [ТС] | 17 | |||||
Витальич
спасибо вам большое, за помощь. Думаю что я понял в чем причина. Начну сначала: 1) Если к проекту подцепить исходник
регистра DAC->SWTRIGR, чтобы он дальше записал данные в выходной регистр ЦАП. (правда там еще кучу файлов в довесок придется цеплять) Функция имеет следующий вид DAC_SoftwareTriggerCmd(DAC_Channel_1, ENABLE); Она то как раз и устанавливает бит SWTRIG. (SWTRIG1 у меня почему то нет видимо у меня проц по количеству ног немного отличается) 2) На самом деле в окне quick watch в iar увидеть как устанавливается бит SWTRIG невозможно, потому что после загрузки данных в выходной регистр, этот бит сбрасывается аппаратно. И это происходит настолько быстро, что установку бита невозможно увидеть. 3) Обнаружил, что ЦАП работает проверив сигнал на ноге PF0 (по схеме на рисунке 24, с.127 руководства RM0031). Однако я ожидал что сигнал будет на ноге PB4 (рисунок 24). Но его там не было. 4) Работоспособность аналоговых ключей я проверил подключив внутренний генератор опорного напряжения к ноге PD6. Все исправно работало. 5) Теперь остался вопрос почему нет сигнала на PB4 при включении аналоговых ключей "IO Switches" ? Возможно это связано с тем, что на схеме (рис.24) после выхода ЦАП имеется ключ на котором написано следующее: "Closed for 28- and 32-pin packages" А у меня корпус из 48 ног. Т.е. судя по надписи для моей микросхемы этот ключ всегда разомкнут и посмотреть, что происходит на выходе я могу только на ноге PF0, а на ноге PB4 не смогу . Вот такая вот запутанная история получается судя по тому что написано в руководстве. Добавлено через 19 минут Код успешно запустился на ноге PF0, выдает 2,92 В. Еще раз спасибо. Когда выбирал отладочную плату для обучения, остановился именно на stm8l-discovery, потому что она дешевая и функциональная, в сравнении с теми же ардуино, в stm модулей внутри процессора намного больше, за те же деньги, и еще дисплейчик есть к тому же. А мне для обучения с чем большими модулями смогу поиграться тем лучше. Вот и взялся за эту платку.
1
|
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
|
|
15.10.2015, 12:10 | 18 |
1
|
6 / 6 / 0
Регистрация: 11.07.2011
Сообщений: 122
|
||||||
15.10.2015, 16:56 [ТС] | 19 | |||||
Нет проблем, Витальич, вот кода из майна:
1
|
0 / 0 / 0
Регистрация: 18.01.2018
Сообщений: 1
|
|
18.01.2018, 22:27 | 20 |
если ещё важно и актуально
кароч тут всё просто ты хочешь одновременно иаровские и стмовские библиотеки юзать , а вторые у тебя не подключены я {не знаю} как тут архив прикрепить так что тебе прийдётся самому скачать эти заголовки под именем #include "stm8L15x.h" #include "stm8L15x_dac.h" подключишь их и в настройках проэкта укажи путь где они лежать и будет тебе счастье!
0
|
18.01.2018, 22:27 | |
18.01.2018, 22:27 | |
Помогаю со студенческими работами здесь
20
АЦП STM8L discovery 10-канальный диммер на STM8L-DISCOVERY STM8l discovery С чего начать? STM8S discovery как программатор STM8L STM8L-DISCOVERY не хочет SPI видеть ((( Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |