Например TDA7294

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





Текущее время: Вт апр 16, 2024 15:57:52

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


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



Начать новую тему Ответить на тему  [ Сообщений: 12482 ]     ... , , , 610, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Сб янв 23, 2021 00:37:25 
Поставщик валерьянки для Кота

Карма: 20
Рейтинг сообщений: 253
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2090
Рейтинг сообщения: 0
Макрос, это макрос. А функция, это функция.

С функцией получится только на плюсах, там PB0 может быть классом, тогда порт и номер пина он хранит как константы и в функцию их передавать не нужно:
Код:
PB1 led;
led.write(0);
PB5::write(1);


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Сб янв 23, 2021 00:38:32 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пн ноя 04, 2019 09:58:29
Сообщений: 102
Откуда: г. Нижний Тагил Свердл. обл.
Рейтинг сообщения: 0
Ну вот незабвенный digitalRead. Надо бы переложить на ASM. Чем я сейчас и занят. Ну как там говорят, когда коту делать нечего..
uint8_t digitalRead(uint8_t pin){ return !!( PINB & (1<<pin) );}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Сб янв 23, 2021 15:59:20 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
Надо бы переложить на ASM.
Может сначала посмотреть во что это компилируется и не заниматься ерундой?

Добавлено after 2 minutes 12 seconds:
там PB0 может быть классом
Добавлю вариантов
Код:
PB1 led;
led=1;


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

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Вс янв 24, 2021 00:53:17 
Мудрый кот
Аватар пользователя

Карма: 12
Рейтинг сообщений: 142
Зарегистрирован: Пт фев 27, 2015 20:57:08
Сообщений: 1754
Откуда: Курск
Рейтинг сообщения: 0
Подскажите пожалуйста, чем по сути отличается микроконтроллер от микропроцессора? Я знаком только с AVR-микроконтроллерами. А сейчас вот столкнулся с микропроцессором, который так же нуждается в прошивке, как и AVR... И имя ему: bj8p153. Что это вообще за зверек такой? Прошу прощения, если не в тот раздел написал :oops: не знаю куда отнести свой вопрос.


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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Вс янв 24, 2021 01:16:50 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
А сейчас вот столкнулся с микропроцессором,
....
И имя ему: bj8p153.
Смешно. AVR по сравнению с ним - суперкомпьютер! Даташит гуглится в 3 сек. В чём проблема почитать?


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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Вс янв 24, 2021 01:37:01 
Мудрый кот

Карма: 11
Рейтинг сообщений: 114
Зарегистрирован: Пт июн 01, 2018 07:28:45
Сообщений: 1759
Рейтинг сообщения: 2
Подскажите пожалуйста, чем по сути отличается микроконтроллер от микропроцессора?

Ответ дан здесь

https://radiokot.ru/forum/viewtopic.php?f=61&t=175053


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Вс янв 24, 2021 03:47:24 
Друг Кота
Аватар пользователя

Карма: 138
Рейтинг сообщений: 2712
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 21790
Откуда: Московская область, Фрязино
Рейтинг сообщения: 5
А сейчас вот столкнулся с микропроцессором

Это КОНТРОЛЛЕР, а не процессор (даташит об этом недвусмысленно намекает прямо в заголовке), причем с ОТР (One Time Programming - однократно программируемой) программной памятью.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Вс янв 24, 2021 20:13:08 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пн ноя 04, 2019 09:58:29
Сообщений: 102
Откуда: г. Нижний Тагил Свердл. обл.
Рейтинг сообщения: 0
Решено. Самый быстрый в мире digitalWrite() и pinMode() и незабвенный подмигиватель светодиодной лампочкой. Всего то и надо было перейти на С++ и применить шаблон в качестве одного из параметров функции.
Спойлер
Код:
/*  Attiny85  */
#define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>
//----
enum { LOW, HIGH };
enum { INPUT, OUTPUT };
//----
template <typename T>
void digitalWrite(T pin, uint8_t val){
if(!val) {
   __asm__ __volatile__("cbi %0, %1" :: "I" (_SFR_IO_ADDR(DDRB)), "I" (pin) );
     } else {
   __asm__ __volatile__("sbi %0, %1" :: "I" (_SFR_IO_ADDR(DDRB)), "I" (pin) );
    }
}
//----
template <typename M>
void pinMode(M pin, uint8_t mode ){//mode: INPUT, OUTPUT
if(!mode) {
   __asm__ __volatile__("cbi %0, %1" :: "I" (_SFR_IO_ADDR(DDRB)-1), "I" (pin) );
   } else {
   __asm__ __volatile__("sbi %0, %1" :: "I" (_SFR_IO_ADDR(DDRB)-1), "I" (pin) );
    }
}
//--------
int main(void){
   
pinMode(PB0, OUTPUT);
   
    while (1) {
digitalWrite(PB0, HIGH);  // зажигаем светодиод
    _delay_ms(50);        // ждем
digitalWrite(PB0, LOW);   // выключаем светодиод
    _delay_ms(50);        // ждем
   }
   
}
Правда только для Attiny85. НУ.. За дружбу, Си++ и ассемблера!


Вложения:
Комментарий к файлу: Снимок с протеуса
Test(3).gif [29.38 KiB]
Скачиваний: 132
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Вс янв 24, 2021 20:39:20 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 3
А теперь с удивлением узнаём, что командами SBI и CBI доступны не все порты. А вот C конструкцию типа PINx |= (1<<pin); компилятор сам способен перевести либо в SBI, либо в OUT исходя из номера порта. Без всякого асма.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Вс янв 24, 2021 21:30:34 
Поставщик валерьянки для Кота

Карма: 12
Рейтинг сообщений: 532
Зарегистрирован: Ср июл 17, 2013 13:55:57
Сообщений: 1978
Рейтинг сообщения: 0
Цитата:
Самый быстрый в мире

Сомнительно. Т.к. как не раз уже вам написали, компилятор Си и так бы нормально всё сделал.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Вс янв 24, 2021 21:44:08 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пн ноя 04, 2019 09:58:29
Сообщений: 102
Откуда: г. Нижний Тагил Свердл. обл.
Рейтинг сообщения: 0
Вполне может быть и так.
Код:
void digitalWrite(volatile uint8_t *port, uint8_t pin, uint8_t val){
   if(!val){ (*(port)) &= ~(1<<pin); }
   else { (*(port)) |= (1<<pin); }
}
Не много поизгалявшись над оригинальной Ардуиновской функцией. (отвязал её от Меги и всех Ардуиновских библиотек) Там - не иначе как тихий ужас я бы не назвал. Ну а насчет подрыгать лапами. Я все-таки лампочки на Reset подключать не планирую.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Вс янв 24, 2021 22:03:29 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
Вполне может быть и так.
Тут недостаток в том, что функция не будет заинлайнена из другой единицы трансляции. Стоит обернуть её в шаблонный класс и сделать статическим методом. Тогда С++ действительно сделает её эффективной. Можно так же продумать реализации, когда на вход подаются константные данные. Тогда проверка условия будет "вырождаться" на этапе компиляции.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Вс янв 24, 2021 23:31:47 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пн ноя 04, 2019 09:58:29
Сообщений: 102
Откуда: г. Нижний Тагил Свердл. обл.
Рейтинг сообщения: 0
Сейчас я пока просто изучаю. Напр.
Код:
uint8_t digitalRead(volatile uint8_t *port, uint8_t pin){
   return !!( (*(port-2)) & (1<<pin) );
}
И работает ли такой эквивалент?
Код:
template <typename K>
uint8_t digitalRead(K pin){
   uint8_t result;
__asm__ __volatile__("inb %[retval], %[pin]" :[retval] "=a" (result) : [pin] "I" (_SFR_IO_ADDR(DDRB)-2) );
   return result;
}
А то на этой стезе много всяких ловушек и капканов. Пока просто для интереса. А о войне миров С++ & ASM читал на разных форумах.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Пн янв 25, 2021 00:30:22 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
Научитесь смотреть листинги компиляции. Пробуйте, смотрите, сравнивайте, делайте выводы.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Пн янв 25, 2021 11:38:46 
Мудрый кот
Аватар пользователя

Карма: 12
Рейтинг сообщений: 142
Зарегистрирован: Пт фев 27, 2015 20:57:08
Сообщений: 1754
Откуда: Курск
Рейтинг сообщения: 0
А сейчас вот столкнулся с микропроцессором

Это КОНТРОЛЛЕР, а не процессор (даташит об этом недвусмысленно намекает прямо в заголовке), причем с ОТР (One Time Programming - однократно программируемой) программной памятью.

А ниже написано BJ8P508/153 is an 8-bit microprocessor with low-power and high-speed CMOS technology и я запутался поэтому немного. Короче производители и сами точно не уверены к чему отнести данную микросхему, т.к. сильной принципиальной разны получается и нет.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Пн янв 25, 2021 12:11:01 
Поставщик валерьянки для Кота

Карма: 20
Рейтинг сообщений: 253
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2090
Рейтинг сообщения: 0
Код:
template <typename T>
void digitalWrite(T pin, uint8_t val){
if(!val) {
   __asm__ __volatile__("cbi %0, %1" :: "I" (_SFR_IO_ADDR(DDRB)), "I" (pin) );
     } else {
   __asm__ __volatile__("sbi %0, %1" :: "I" (_SFR_IO_ADDR(DDRB)), "I" (pin) );
    }
}

Это совсем не то, о чем я говорил изначально, аргумент функции тут по-прежнему присутствует и формально он не константа времени компиляции, потому подобный код не будет компилироваться всегда. Например, если отключить оптимизацию, то не помогут даже навешеные на функцию атрибуты оптимизации и инлайнинга если сама функцию вызывается из неоптимизированного контекста, потому что в таком случае инлайнинг невозможен, а без инлайнинга pin будет передаваться в регистре... Через шаблон нужно передавать само значение, а не тип:
Код:
template <uint8_t pin>
void digitalWrite(bool val){

В таком виде будет компилироваться всегда, но сам вызов выглядит не лучшим образом:
Код:
digitalWrite<PB0>(HIGH)

С классом не будет лишних скобок и параметров, имена функций тоже будут короче, т.к. они ни с какими другими именами не конфликтуют.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Пн янв 25, 2021 12:22:05 
Друг Кота
Аватар пользователя

Карма: 1
Рейтинг сообщений: 157
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 3328
Рейтинг сообщения: 0
Олегыч1 писал(а):
чем по сути отличается микроконтроллер от микропроцессора?
https://ru.wikipedia.org/wiki/Однокрист ... контроллер
https://ru.wikipedia.org/wiki/Микропроцессор

Если кратко, то в состав микроконтроллера входит микропроцессор, память (постоянная и оперативная), периферия и др. модули например задающий генератор, умножитель частоты и т. д. То есть микропроцессор это одна из составных частей микроконтроллера.

Олегыч1 писал(а):
А ниже написано BJ8P508/153 is an 8-bit microprocessor with low-power and high-speed CMOS technology
Это значит что в микроконтроллере 8-ми битный микропроцессор. Устаревший на данный момент. Ориентируйтесь на 32 бита если нужны современные микроконтроллеры.

Олегыч1 писал(а):
Короче производители и сами точно не уверены к чему отнести данную микросхему
Нет, это вы не поняли суть. Это примерно тоже что если бы вы написали
Цитата:
В компе 32-ух битный пароцессор. Короче производители и сами точно не уверены это компьютер или процессор.
Абсурд, согласны?

Олегыч1 писал(а):
сильной принципиальной разны получается и нет.
Процессор только выполняет инструкции. Он не содержит памяти и периферии.
Микроконтроллер в виде одной микросхемы, а для процессора нужно много других микросхем - память, контроллер прерываний, система тактирования и т. д.
Вот классический процессор https://ru.wikipedia.org/wiki/КР580ВМ80А


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Пн янв 25, 2021 12:42:38 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Мурик писал(а):
Процессор только выполняет инструкции. Он не содержит памяти и периферии.
современный пентиум или там что еще - микроконтрроллер, получается?

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

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Пн янв 25, 2021 13:28:02 
Мудрый кот

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

В микропроцессоре это всё тоже есть. По ссылке, что я дал, по сути всё разобрано.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Пн янв 25, 2021 13:37:06 
Друг Кота
Аватар пользователя

Карма: 1
Рейтинг сообщений: 157
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 3328
Рейтинг сообщения: 0
ARV писал(а):
современный пентиум или там что еще - микроконтрроллер, получается?
Пентиум это что однокристальный контроллер или много других микросхем требует? В нем есть ПЗУ и ОЗУ (кеши не в счет)? Это будет ответ на вопрос.
Читайте вики там все написано.

parovoZZ писал(а):
В микропроцессоре это всё тоже есть.
Покажите где именно в этом есть https://ru.wikipedia.org/wiki/КР580ВМ80А

PS.
Не думаю что стоит спорить на эту тему. Олегыч1 спросил в чем отличие, я ответил.
Речь не про современные процессоры типа Intel Core или AMD, а про тем что во встраиваемых решениях в виде одной микросхемы https://ru.wikipedia.org/wiki/Однокрист ... контроллер
Олегыч1 ведь не про компы спрашивал.


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

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


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

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


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

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


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