inquisitor
17 / 8 / 17
Регистрация: 22.12.2015
Сообщений: 1,966
|
|||||||||||||||||||||
1 | |||||||||||||||||||||
Переписать функцию с Arduino на Atmega827.11.2018, 21:01. Просмотров 1620. Ответов 32
Метки нет Все метки)
(
В Arduino есть функции на СИ
Цифровой ввод/вывод
Добавлено через 22 минуты
0
|
|
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
|
27.11.2018, 21:01 |
Ответы с готовыми решениями:
32
помогите: atmega8 + arduino + nrf24l01 Как прошить Atmega8 с помощью Arduino Uno Разница между ATMEGA8-16AI и ATMEGA8-16AU
Модуль распознавания речи + Arduino Pro mini + Arduino MP3-Sheild |
tatarva87
120 / 38 / 12
Регистрация: 23.03.2018
Сообщений: 153
|
||||||
27.11.2018, 21:15 | 2 | |||||
Можно сделать просто: на атмеге 8 в начале майна включаешь ножку ос2 (рв3 помоему) на выход. Запускаешь шим на таймере 2 строками
Единственное - период шим сигнала определяется 0 1 и 2 битом регистра Тсср2.
1
|
inquisitor
17 / 8 / 17
Регистрация: 22.12.2015
Сообщений: 1,966
|
||||||||||||||||
27.11.2018, 21:38 [ТС] | 3 | |||||||||||||||
Получается нужно
Синтаксис analogWrite(pin, value) Параметры pin: порт вход/выхода на который подаем ШИМ сигнал. value: период рабочего цикла значение между 0 (полностью выключено) and 255 (сигнал подан постоянно). Возвращаемое значение нет
Добавлено через 5 минут Синтаксис analogRead(pin) Параметры pin: номер порта аналогового входа с которого будет производиться считывание (0..5 для большинства плат, 0..7 для Mini и Nano и 0..15 для Mega) Возвращаемое значение int (0 to 1023) А что бы получить значение ШИМ,так правильно?Или нужно PB3 и никакой др пин?
0
|
COKPOWEHEU
2028 / 1241 / 285
Регистрация: 09.09.2017
Сообщений: 5,063
|
||||||
28.11.2018, 16:24 | 4 | |||||
даже не считая того, что вторая запись просто неверная, они не эквивалентны. Вариант Ардуины гораздо более сложный и затратный.
Очевидно, вы даже не пытались разобраться в коде. tatarva87 привел только инициализацию, и то не всю. Ее надо делать в самом начале main'а. А сам ШИМ должен генерироваться в прерываниях:
0
|
28.11.2018, 16:24 | |
inquisitor
17 / 8 / 17
Регистрация: 22.12.2015
Сообщений: 1,966
|
|||||||||||
28.11.2018, 18:19 [ТС] | 5 | ||||||||||
Задача переписать стандартные функции с Arduino->atmega8
Цифровой ввод/вывод
0
|
COKPOWEHEU
2028 / 1241 / 285
Регистрация: 09.09.2017
Сообщений: 5,063
|
|
29.11.2018, 09:21 | 6 |
Есть ли у этой задачи практическое применение или "так задали"?
0
|
inquisitor
17 / 8 / 17
Регистрация: 22.12.2015
Сообщений: 1,966
|
|
29.11.2018, 11:09 [ТС] | 7 |
Мне нравиться arduino and atmega8.
В первом скетч создается легко с помощью функции.Вот так же хочу и в во втором МК.
0
|
COKPOWEHEU
2028 / 1241 / 285
Регистрация: 09.09.2017
Сообщений: 5,063
|
|
29.11.2018, 12:36 | 8 |
А что мешает использовать Arduino для вашего контроллера? Ведь ардуинская среда это всего лишь avr-g++ с библиотеками. Наверняка где-то в настройках можно выбрать произвольный камень.
Но еще раз напоминаю, что производительность кода в стиле Ардуины минимум на порядок ниже нормального. И по скорости, и по объему, и по функционалу.
0
|
inquisitor
17 / 8 / 17
Регистрация: 22.12.2015
Сообщений: 1,966
|
|
29.11.2018, 14:57 [ТС] | 9 |
Я об этом даже не знал.
Расскажите подробнее ибо в меню выбора плат нет Atmega
0
|
COKPOWEHEU
2028 / 1241 / 285
Регистрация: 09.09.2017
Сообщений: 5,063
|
|
29.11.2018, 15:16 | 10 |
Куда именно тыкать в среде разработки я не знаю, поскольку Ардуиной не пользовался никогда. Достаточно самодельных отладочных плат, консольного компилятора, текстового редактора и makefile'ов.
Скажем, гугл одной из первых ссылок выдал это: http://homes-smart.ru/index.php/obor...du-arduino-ide А вообще, можете посмотреть что генерируется для "родных" проектов и воспроизвести для своего. Да хотя бы флаги для avr-g++ скопируйте. Повторяю, весь "синтаксический сахар" Ардуины это всего лишь библиотеки для avr-g++, ими можно пользоваться и отдельно от среды разработки, из командной строки. Подопытный у вас есть, экспериментируйте!
1
|
inquisitor
17 / 8 / 17
Регистрация: 22.12.2015
Сообщений: 1,966
|
|||||||||||
03.12.2018, 16:34 [ТС] | 11 | ||||||||||
Atmel studio6.2 ругаеться
Error 1 expected '=', ',', ';', 'asm' or '__attribute__' before 'digitalRead'
Warning 1 control reaches end of non-void function [-Wreturn-type] убрал знак равно.А как побороть варнинг?
0
|
COKPOWEHEU
2028 / 1241 / 285
Регистрация: 09.09.2017
Сообщений: 5,063
|
||||||||||||||||
03.12.2018, 17:16 | 12 | |||||||||||||||
Давайте я разверну несколько констант в вашем коде:
Строку с ошибкой вы назвать не удосужились, ну да ладно. Возможно, компилятору не нравится, что в качестве аргумента может быть передано 14, или 256, или -1, и при этом результат будет непредсказуемым. Добавлено через 8 минут Попробую отговорить от говнокода еще раз. Вы абсолютно точно уверены, что назначение выводов может измениться во время выполнения программы? Ну то есть висит, скажем, на PD2 светодиод и вдруг раз - и переместился на PC1, уведомив (как?!) об этом программу. Почему бы не использовать обычные макросы, разворачивающиеся на этапе компиляции, а не выполнения, как у вас, удобные в использовании (опять же, в отличии от) и с человеко-читаемыми названиями? Arduino-style:
0
|
inquisitor
17 / 8 / 17
Регистрация: 22.12.2015
Сообщений: 1,966
|
|
03.12.2018, 18:13 [ТС] | 13 |
Я нашел рабочую схему+код под Arduino.Я собрал схему под catmega328p.Код откомпилировался и в протеусе все работает.
Мне нужно его в atmel studio 6.2 откомпилировать. Я установил расширение arduino_ide_for_atmel_studio_6.2.17.6.2502.msi Код откомпилировал.Но протеус с его прошивкой сразу виснет и ничего не симулирует. Я бы хотел код на чистом Си под атмел переписать. Переписал сделав выше упомянутую функцию digitalRead но в протеусе не работает схема либо курсор бегает справа налева либо экран забит надписями не теми,что нужно.А по факту под атмел студио нужен код ля симуляции в протеусе енкодера,то есть считать угол поворота угла положения вала на двигателе.
0
|
COKPOWEHEU
2028 / 1241 / 285
Регистрация: 09.09.2017
Сообщений: 5,063
|
||||||
04.12.2018, 11:07 | 14 | |||||
Вот как тот код можно переделать под макросы:
В протеусе проверил, вроде работает.
1
|
inquisitor
17 / 8 / 17
Регистрация: 22.12.2015
Сообщений: 1,966
|
|
04.12.2018, 13:45 [ТС] | 15 |
Не работает в протеусе.Код откомпилировал в atmel studio 6 успешно.
В архиве проект протеусе 7.7+проект atmel studio(исходник+прошивка)
0
|
COKPOWEHEU
2028 / 1241 / 285
Регистрация: 09.09.2017
Сообщений: 5,063
|
|
04.12.2018, 14:23 | 16 |
Жаль, вы не выложили схему (у меня протеус 7.6 и ваш формат не открывает, да и это в любом случае неудобно).
У себя пересобрал под m328 с вашими настройками, все работает. Из предположений что может пойти не так: - питание на AVCC (оно должно быть чтобы работали порты С) - земля на R/W (просто болтаться в воздухе нельзя) ну и надеюсь, с выводами не ошиблись: D4 на PC1, D5-PC2, D6-PC3, D7-PC4
1
|
inquisitor
17 / 8 / 17
Регистрация: 22.12.2015
Сообщений: 1,966
|
|
04.12.2018, 14:50 [ТС] | 17 |
0
|
COKPOWEHEU
2028 / 1241 / 285
Регистрация: 09.09.2017
Сообщений: 5,063
|
|
04.12.2018, 15:04 | 18 |
![]() Решение
Проверяйте
1
|
inquisitor
17 / 8 / 17
Регистрация: 22.12.2015
Сообщений: 1,966
|
|
04.12.2018, 15:49 [ТС] | 19 |
Проверил работает.
Разрешите еще вопрос.Как в протеусе смоделировать зарядку 12v батареи? Схему и код прилагаю. Если можно подправить с выводом на дисплей. sketch_nov30a.rar
0
|
COKPOWEHEU
2028 / 1241 / 285
Регистрация: 09.09.2017
Сообщений: 5,063
|
|
04.12.2018, 16:04 | 20 |
И где была ошибка?
Сомневаюсь, что там реализованы аккумуляторы, но можете смоделировать через "батарейку" (cell) и переменный резистор чтобы имитировать напряжение батареи разной степени заряженности. Схема вроде бы нормальная, а вот о качестве кода говорит уже количество goto. Хотя форматирование неплохое и комментарии есть. Я бы посоветовал вам помедитировать немного (чтобы не заразиться этими goto) над кодом и написать свой, без использования ардуинских функций. Единственная проблема, которая может у вас с этим возникнуть - analogRead(). Для его замены стоит внимательно почитать Евстифеева "Микроконтроллеры AVR семейства mega" (лучший из известных мне справочников по AVR), особенно раздел об АЦП. То что получится выкладывайте сюда, я уверен что найду что улучшить.
1
|
04.12.2018, 16:04 | |
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
|
04.12.2018, 16:04 |
Arduino UNO. Как работать c RFID-сканнером и Arduino на одном Serial-порту? Arduino uno + arduino ethernet + delphi для чайников AVRISP + ARDUINO mega + Arduino mini 32Khz Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |