для более сложных задач (работа с разнообразной периферией, графическими дисплеями) наверно лучше подойдёт С++, т.к. код получается стройнее, и хоть результирующая прошивка получается объёмней, но применяемые в этом случае более мощные МК её потянут. (пример - Марлин (прошивка для 3д принтера) написан на С++ в среде ардуино...)
Вообще не показатель. У меня контроллер 3D принтера на ARM, прошивка на Си. Абсолютно всё конфигурируется из текстового файла. В марлине, насколько я понимаю, необходимо перепрошивать.
В третий раз. Спецификатором является ТОЛЬКО p. Знак % применяется и с другими спецификаторами, коих целая туча.
Не вижу разницы. Перевод не меняется. ДЛЯ указателя. Так понятней, да. Но в коде, который я написал, Указателя нет вообще. А символы ДЛЯ указателя присутствуют. Осталось только pointer перевести по другому)))
Но в коде, который я написал, Указателя нет вообще. А символы ДЛЯ указателя присутствуют.
В четвертый раз предлагаю прочитать описание функции printf... Спецификатор р под кавычками определяет СПОСОБ передачи выводимого значения. Это ЛОКАЛЬНЫЙ указатель ВНУТРИ функции. Аргумент передаваемый в функцию расположен ПОСЛЕ ЗАПЯТОЙ и является значением этого локального указателя. Что не так? Никакого внешнего указателя не требуется. Не надо переводить аббревиатуры и искать сакральный смысл в буквах. Есть мануал, где некие символы определяют некие соответствующие этим символам действия. Никаких других толкований давать не нужно.
Кажется нашёл объяснение. Можете оценить? Вот описание Указателя из интернета: Указатель — это переменная, которая содержит адрес другой переменной. В моём примере r содержит адрес самой себя, а не другой переменной. Поэтому r не будет являться указателем. Имеется в виду указатель на адрес другой переменной.
Рассмотрим реализацию узла управления реле на примере компонентов SUNCO и реле Hongfa. Разберем оптимальные схемы и долговечные полупроводниковые компоненты для их реализации среди широкого ассортимента SUNCO. В номенклатуру компании SUNCO входят диодные мосты, выпрямительные, сигнальные и TVS-диоды, стабилитроны, биполярные, цифровые PNP- и NPN-транзисторы, маломощные тиристоры, симисторы и MOSFET.
Вот и мне интересно: зачем ты корчишь комедию и строишь из себя идиота? Тема давно скатилась в офтоп. Элементарные детские вопросы по С можно одним махом решить, прочитав Кернигана & Ритчи. А вопросы по аргументам функций 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. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
КОМПЭЛ продолжает поддерживать и расширять список складских позиций Hongfa, представленных электромеханическими реле. Продукция компании активно применяется в таких областях, как промышленность, энергетика, бытовые приборы, автомобильная отрасль и специальная техника, требующая высокой надежности и на сегодняшний момент может легко заменить электромеханические реле ушедших из РФ брендов.
Заголовок сообщения: Re: С чего начать программировать микроконтроллеры?
Добавлено: Вт дек 14, 2021 20:54:53
Встал на лапы
Зарегистрирован: Пн ноя 04, 2019 09:58:29 Сообщений: 104 Откуда: г. Нижний Тагил Свердл. обл.
Рейтинг сообщения:0
Добрый вечер. У меня не большой вопросик. Вот классический код начинающего микроконтроллерщика Спойлер// ATtiny85 test #define F_CPU 8000000UL #include <avr/io.h> #include <util/delay.h>
/* 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) согласно ДШ.
Заголовок сообщения: Re: С чего начать программировать микроконтроллеры?
Добавлено: Чт дек 16, 2021 18:14:49
Друг Кота
Карма: 67
Рейтинг сообщений: 1029
Зарегистрирован: Чт сен 18, 2008 12:27:21 Сообщений: 18969 Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения:0 Медали: 1
.... и???
_________________ [ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ] Измерить нннада?
template<BOARD::pin_t PIN> class GPIO { public: GPIO<PIN>& input(){// & - адрес операнда PIN в памяти SFR()->ddr &= ~MASK; return (*this);// * - значение по адресу }
} }Взял здесь. Разобрал по запчастям, потом снова собрал. Фурычит. Правда выпотрошил все, то не мешает работе. В целом вроде бы всё понятно. Сначала рылся в io.h. Но там макрос на макросе и макросом подгоняет.
Зачем вообще отказываться от имён регистров? Кот становится нечитаемым.
_________________ ВНИМАНИЕ! Я часто редактирую свои сообщения, поэтому перед ответом мне советую обновить страницу. За перенос модераторами в МЯВУ тем с моими сообщениями я ответственности не несу.
Заголовок сообщения: Re: С чего начать программировать микроконтроллеры?
Добавлено: Пт дек 17, 2021 19:34:28
Встал на лапы
Зарегистрирован: Пн ноя 04, 2019 09:58:29 Сообщений: 104 Откуда: г. Нижний Тагил Свердл. обл.
Рейтинг сообщения:0
Я разбираюсь с библиотекой GPIO (ссылка) Перевод со страницы англ.->рус.
Цитата:
Библиотека Arduino GPIO была разработана для обеспечения высокопроизводительного доступа к цифровым выводам. Большинство функций доступа скомпилированы в одну инструкцию и выполняются за 1-2 такта. Функции библиотеки более чем в 10 раз быстрее, чем функции цифровых выводов Arduino. В некоторых случаях в 100 раз быстрее...
Скачал, установил, отвязался от Ардуины. Работает нормально. Но хотелось бы знать больше - что, зачем и почему до каждой строчки. В целом просветление некоторое есть. Самообразование так сказать (ну или делать нех..)
Тогда всё правильно, читайте файлы с макросами. Например, из библиотек WinAVR. А про ардуй потихоньку забывайте. Железо применять можно.
_________________ ВНИМАНИЕ! Я часто редактирую свои сообщения, поэтому перед ответом мне советую обновить страницу. За перенос модераторами в МЯВУ тем с моими сообщениями я ответственности не несу.
Доброго дня Подскажите, можно ли реализовать на МК
МК - attiny85 среда - ардуино ИДЕ
Хочу использовать 2 порта под АЦП, НО надо на одном порте делать замер 0-5в (опорное = питанию мк 5В) а на другом - 0-1.1В (опорное внутренней стабилизатор 1.1В -- можно динамически постоянно менять источник опорного???
//зачем надо - делаю на основе этого МК контроллер для электромашинки и один вход на ручку газа идет, а другой на замер тока на шунте (шунт из медной проволоки 2мм диаметром .. надо фиксировать токи до 150А
Проще ослабить делителем или даже просто одним добавочным резистором сигнал с ручки газа.
_________________ ВНИМАНИЕ! Я часто редактирую свои сообщения, поэтому перед ответом мне советую обновить страницу. За перенос модераторами в МЯВУ тем с моими сообщениями я ответственности не несу.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения