Например TDA7294

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





Текущее время: Вс апр 28, 2024 00:16:54

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


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



Начать новую тему Ответить на тему  [ Сообщений: 2294 ]     ... , , , , 115
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: С чего начать программировать микроконтроллеры?
СообщениеДобавлено: Пн авг 16, 2021 09:50:24 
Мудрый кот

Карма: 11
Рейтинг сообщений: 114
Зарегистрирован: Пт июн 01, 2018 07:28:45
Сообщений: 1759
Рейтинг сообщения: 0
для более сложных задач (работа с разнообразной периферией, графическими дисплеями) наверно лучше подойдёт С++, т.к. код получается стройнее, и хоть результирующая прошивка получается объёмней, но применяемые в этом случае более мощные МК её потянут. (пример - Марлин (прошивка для 3д принтера) написан на С++ в среде ардуино...)

Вообще не показатель. У меня контроллер 3D принтера на ARM, прошивка на Си. Абсолютно всё конфигурируется из текстового файла. В марлине, насколько я понимаю, необходимо перепрошивать.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: С чего начать программировать микроконтроллеры?
СообщениеДобавлено: Пн авг 16, 2021 10:15:38 
Потрогал лапой паяльник

Карма: -3
Рейтинг сообщений: -4
Зарегистрирован: Ср дек 09, 2020 18:38:07
Сообщений: 317
Рейтинг сообщения: 0
В третий раз. Спецификатором является ТОЛЬКО p. Знак % применяется и с другими спецификаторами, коих целая туча.

Не вижу разницы. Перевод не меняется.
ДЛЯ указателя. Так понятней, да. Но в коде, который я написал, Указателя нет вообще. А символы ДЛЯ указателя присутствуют.
Осталось только pointer перевести по другому)))

Добавлено after 30 seconds:
Что-то тут все в толстый троллинг скатилось…

А ведь хорошие посты писали. Зачем же так.
Когда не можешь или не хочешь объяснить, мир или волшебный или троллит тебя.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: С чего начать программировать микроконтроллеры?
СообщениеДобавлено: Пн авг 16, 2021 11:09:01 
Друг Кота
Аватар пользователя

Карма: 138
Рейтинг сообщений: 2712
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 21856
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Но в коде, который я написал, Указателя нет вообще. А символы ДЛЯ указателя присутствуют.

В четвертый раз предлагаю прочитать описание функции printf...
Спецификатор р под кавычками определяет СПОСОБ передачи выводимого значения. Это ЛОКАЛЬНЫЙ указатель ВНУТРИ функции. Аргумент передаваемый в функцию расположен ПОСЛЕ ЗАПЯТОЙ и является значением этого локального указателя.
Что не так? Никакого внешнего указателя не требуется.
Не надо переводить аббревиатуры и искать сакральный смысл в буквах. Есть мануал, где некие символы определяют некие соответствующие этим символам действия. Никаких других толкований давать не нужно.


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

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: С чего начать программировать микроконтроллеры?
СообщениеДобавлено: Пн авг 16, 2021 11:14:58 
Потрогал лапой паяльник

Карма: -3
Рейтинг сообщений: -4
Зарегистрирован: Ср дек 09, 2020 18:38:07
Сообщений: 317
Рейтинг сообщения: 0
Кажется нашёл объяснение. Можете оценить?
Вот описание Указателя из интернета:
Указатель — это переменная, которая содержит адрес другой переменной.
В моём примере r содержит адрес самой себя, а не другой переменной. Поэтому r не будет являться указателем. Имеется в виду указатель на адрес другой переменной.


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: С чего начать программировать микроконтроллеры?
СообщениеДобавлено: Пн авг 16, 2021 11:18:44 
Собутыльник Кота
Аватар пользователя

Карма: -12
Рейтинг сообщений: -25
Зарегистрирован: Пт июл 12, 2019 22:52:01
Сообщений: 2525
Рейтинг сообщения: -1
Зачем же так.

Вот и мне интересно: зачем ты корчишь комедию и строишь из себя идиота?
Тема давно скатилась в офтоп. Элементарные детские вопросы по С можно одним махом решить, прочитав Кернигана & Ритчи. А вопросы по аргументам функций glibc — почитав маны. Ну набери ты в консоли man 3 printf — и читай на здоровье!
Цитата:
В моём примере r содержит адрес самой себя, а не другой переменной.

Вот тебе простой пример:
Код:
#include <stdio.h>

int main(){
        int x = 2;
        void *ptr = (void*)&x;
        printf("ptr=%p\n", ptr);
        ptr = &ptr;
        printf("ptr=%p\n", ptr);
        return 0;
}

Сначала ptr содержит адрес x, а потом - свой собственный.

_________________
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ


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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: С чего начать программировать микроконтроллеры?
СообщениеДобавлено: Пн авг 16, 2021 11:26:23 
Друг Кота
Аватар пользователя

Карма: 138
Рейтинг сообщений: 2712
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 21856
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Указатель — это переменная, которая содержит адрес другой переменной.

Да, именно так.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: С чего начать программировать микроконтроллеры?
СообщениеДобавлено: Вт дек 14, 2021 20:54:53 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пн ноя 04, 2019 09:58:29
Сообщений: 102
Откуда: г. Нижний Тагил Свердл. обл.
Рейтинг сообщения: 0
Добрый вечер. У меня не большой вопросик.
Вот классический код начинающего микроконтроллерщика
Спойлер// ATtiny85 test
#define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>

int main(void){

PORTB |= (1 << PB2);
DDRB |= ( 1 << PB2 );// output

while(1){
PORTB |= (1<<PB2);
_delay_ms(500);
PORTB &= ~(1<<PB2);
_delay_ms(500);
}

}

/*
0x18 PORTB – – PORTB5 PORTB4 PORTB3 PORTB2 PORTB1 PORTB0
0x17 DDRB – – DDB5 DDB4 DDB3 DDB2 DDB1 DDB0
0x16 PINB – – PINB5 PINB4 PINB3 PINB2 PINB1 PINB0
*/
А теперь необходимо переписать тот же код без использования имен регистров, используя исключительно их адреса (0x18, 0x17, 0x16) согласно ДШ. :dont_know:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: С чего начать программировать микроконтроллеры?
СообщениеДобавлено: Чт дек 16, 2021 18:14:49 
Друг Кота
Аватар пользователя

Карма: 67
Рейтинг сообщений: 1013
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 18812
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
.... и???

_________________
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Измерить нннада?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: С чего начать программировать микроконтроллеры?
СообщениеДобавлено: Пт дек 17, 2021 16:17:12 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пн ноя 04, 2019 09:58:29
Сообщений: 102
Откуда: г. Нижний Тагил Свердл. обл.
Рейтинг сообщения: 0
Ну напр. так...
Спойлер/* ATiny85 -std=c++14
регистр специального назначения
регистры SFR
*/
#define F_CPU 8000000UL //
#include <avr/io.h>
#include <util/delay.h>

#define GPIO_PIN(port, pin) ( ((port) << 4) | (pin) )
#define GPIO_REG(pin) ((pin ) >> 4)
#define GPIO_MASK(pin) _BV( (pin) & 0xF )

//#define GPIO_MASK(pin) (1 << ((pin) & 0xF))
//constexpr
//uint8_t GPIO_MASK(uint8_t pin){
//return 1 << ( (pin) & 0xF );
//}


class BOARD {
public:
enum pin_t {
D0 = GPIO_PIN(0x36,0), // PINB:0
D1 = GPIO_PIN(0x36,1), // PINB:1
D2 = GPIO_PIN(0x36,2), // PINB:2
D3 = GPIO_PIN(0x36,3), // PINB:3
D4 = GPIO_PIN(0x36,4), // PINB:4
D5 = GPIO_PIN(0x36,5), // PINB:5
};
};

template<BOARD::pin_t PIN>
class GPIO {
public:
GPIO<PIN>& input(){// & - адрес операнда PIN в памяти
SFR()->ddr &= ~MASK;
return (*this);// * - значение по адресу
}

//void input(){ SFR()->ddr &= ~MASK; }

void output(){ SFR()->ddr |= MASK;}

void low(){ SFR()->port &= ~MASK; }

void high(){ SFR()->port |= MASK; }

void write(int value){
if(value){ high(); } else { low(); }
}

bool read(){ return ((SFR()->pin & MASK) != 0); }

void operator=(int value){
write(value);
}

protected:
struct gpio_reg_t {
volatile uint8_t pin; //!< Port Input Pins.
volatile uint8_t ddr; //!< Data Direction Register.
volatile uint8_t port; //!< Data Register.
};

gpio_reg_t* SFR(){ return ( (gpio_reg_t*) GPIO_REG(PIN) ); }

static const uint8_t MASK = GPIO_MASK(PIN);
};


GPIO<BOARD::D3> led;

int main(void){

led.output();// пин на выход

while (1) {// мигание светодиодом

led.write(1); // зажечь
_delay_ms(500);
led.write(0); // погасить
_delay_ms(500);

}
}
Взял здесь. Разобрал по запчастям, потом снова собрал. Фурычит. Правда выпотрошил все, то не мешает работе. В целом вроде бы всё понятно. Сначала рылся в io.h. Но там макрос на макросе и макросом подгоняет.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: С чего начать программировать микроконтроллеры?
СообщениеДобавлено: Пт дек 17, 2021 17:55:18 
Друг Кота
Аватар пользователя

Карма: 111
Рейтинг сообщений: 4064
Зарегистрирован: Пт мар 30, 2012 05:17:29
Сообщений: 13505
Откуда: Екатеринбург
Рейтинг сообщения: 0
Зачем вообще отказываться от имён регистров? Кот :))) становится нечитаемым.

_________________
ВНИМАНИЕ! Я часто редактирую свои сообщения, поэтому перед ответом мне советую обновить страницу.
За перенос модераторами в МЯВУ тем с моими сообщениями я ответственности не несу.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: С чего начать программировать микроконтроллеры?
СообщениеДобавлено: Пт дек 17, 2021 19:34:28 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пн ноя 04, 2019 09:58:29
Сообщений: 102
Откуда: г. Нижний Тагил Свердл. обл.
Рейтинг сообщения: 0
Я разбираюсь с библиотекой GPIO (ссылка) Перевод со страницы англ.->рус.
Цитата:
Библиотека Arduino GPIO была разработана для обеспечения высокопроизводительного доступа к цифровым выводам. Большинство функций доступа скомпилированы в одну инструкцию и выполняются за 1-2 такта. Функции библиотеки более чем в 10 раз быстрее, чем функции цифровых выводов Arduino. В некоторых случаях в 100 раз быстрее...
Скачал, установил, отвязался от Ардуины. Работает нормально. Но хотелось бы знать больше - что, зачем и почему до каждой строчки. В целом просветление некоторое есть. Самообразование так сказать (ну или делать нех..) :))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: С чего начать программировать микроконтроллеры?
СообщениеДобавлено: Пт дек 17, 2021 20:07:07 
Друг Кота
Аватар пользователя

Карма: 111
Рейтинг сообщений: 4064
Зарегистрирован: Пт мар 30, 2012 05:17:29
Сообщений: 13505
Откуда: Екатеринбург
Рейтинг сообщения: 0
Тогда всё правильно, читайте файлы с макросами. Например, из библиотек WinAVR. А про ардуй потихоньку забывайте. Железо применять можно.

_________________
ВНИМАНИЕ! Я часто редактирую свои сообщения, поэтому перед ответом мне советую обновить страницу.
За перенос модераторами в МЯВУ тем с моими сообщениями я ответственности не несу.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: С чего начать программировать микроконтроллеры?
СообщениеДобавлено: Вт окт 11, 2022 15:34:12 
Открыл глаза

Зарегистрирован: Пт фев 27, 2015 14:15:08
Сообщений: 52
Рейтинг сообщения: 0
Доброго дня
Подскажите, можно ли реализовать на МК

МК - attiny85
среда - ардуино ИДЕ

Хочу использовать 2 порта под АЦП,
НО
надо на одном порте делать замер 0-5в (опорное = питанию мк 5В)
а на другом - 0-1.1В (опорное внутренней стабилизатор 1.1В
--
можно динамически постоянно менять источник опорного???

//зачем надо - делаю на основе этого МК контроллер для электромашинки и один вход на ручку газа идет, а другой на замер тока на шунте (шунт из медной проволоки 2мм диаметром .. надо фиксировать токи до 150А


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: С чего начать программировать микроконтроллеры?
СообщениеДобавлено: Вт окт 11, 2022 15:41:27 
Друг Кота
Аватар пользователя

Карма: 111
Рейтинг сообщений: 4064
Зарегистрирован: Пт мар 30, 2012 05:17:29
Сообщений: 13505
Откуда: Екатеринбург
Рейтинг сообщения: 1
Проще ослабить делителем или даже просто одним добавочным резистором сигнал с ручки газа.

_________________
ВНИМАНИЕ! Я часто редактирую свои сообщения, поэтому перед ответом мне советую обновить страницу.
За перенос модераторами в МЯВУ тем с моими сообщениями я ответственности не несу.


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

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


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

Сейчас этот форум просматривают: iCCCP и гости: 38


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

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


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