Например TDA7294

Форум РадиоКот • Просмотр темы - Вопросы по С/С++ (СИ)
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт апр 25, 2024 22:18:28

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


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



Начать новую тему Ответить на тему  [ Сообщений: 7588 ]     ... , , , 279, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт май 01, 2018 19:30:36 
Мучитель микросхем

Карма: 2
Рейтинг сообщений: 10
Зарегистрирован: Ср окт 19, 2011 08:48:27
Сообщений: 443
Откуда: Мать городов русских
Рейтинг сообщения: 0
Народ, подскажите, задан 8-битный массив, к примеру:
Код:
uint8_t Test_Buffer1 [] = { 0x00,0x01,0x02,0x03,0x04,0x05};

Как его прочитать 16-битной переменной? Это для MAX7219 - инициализация и данные - в 8-битнов виде (так удобнее), а SPI у него 16-бит?

_________________
Хорошему коту и в декабре - март :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт май 01, 2018 19:42:00 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2694
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
uint16_t x=*((uint16_t *)&array[n]);

Как то так наверное.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт май 01, 2018 19:47:19 
Мучитель микросхем

Карма: 2
Рейтинг сообщений: 10
Зарегистрирован: Ср окт 19, 2011 08:48:27
Сообщений: 443
Откуда: Мать городов русских
Рейтинг сообщения: 0
uint16_t x=*((uint16_t *)&array[n]);
Как то так наверное.

Благодарю, буду пробовать.

_________________
Хорошему коту и в декабре - март :)


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

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт май 01, 2018 19:54:43 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2694
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Можно еще вот так.
uint16_t *array16;
array16=(uint16_t *)&array8[0];
uint16_t x = array16[n];

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт май 01, 2018 19:58:40 
Потрогал лапой паяльник
Аватар пользователя

Карма: 20
Рейтинг сообщений: 121
Зарегистрирован: Вс янв 19, 2014 22:41:55
Сообщений: 353
Рейтинг сообщения: 0
Это для MAX7219 - инициализация и данные - в 8-битнов виде (так удобнее)

Удобнее будет единая функция на все случаи, компонующая 16-битную посылку из своих параметров - адреса и данных в требуемой спецификацией порядке. А инициализационные таблицы переоформите в виде:

Код:
struct {
  uint8_t addr;
  uint8_t data;
} aInitTable[] = {
  { 0x01, 0xFF },
  { 0x02, 0xAF },
  { 0x03, 0xCD }
};


Можно, конечно, и кувалдочкой *((uint16_t*)Test_Buffer1 + n) - но это, в зависимости от платформы, грозит преждевременным знакомством с понятием endianness используемой аппаратной части.

_________________
Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR! ;-)


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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт май 01, 2018 20:17:27 
Мучитель микросхем

Карма: 2
Рейтинг сообщений: 10
Зарегистрирован: Ср окт 19, 2011 08:48:27
Сообщений: 443
Откуда: Мать городов русских
Рейтинг сообщения: 0
Удобнее будет единая функция на все случаи, компонующая 16-битную посылку из своих параметров - адреса и данных в требуемой спецификацией порядке. А инициализационные таблицы переоформите в виде:
Код:
struct {
  uint8_t addr;
  uint8_t data;
} aInitTable[] = {
  { 0x01, 0xFF },
  { 0x02, 0xAF },
  { 0x03, 0xCD }
};

Можно, конечно, и кувалдочкой *((uint16_t*)Test_Buffer1 + n) - но это, в зависимости от платформы, грозит преждевременным знакомством с понятием endianness используемой аппаратной части.

Благодарю

_________________
Хорошему коту и в декабре - март :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Ср май 02, 2018 16:58:31 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пт фев 14, 2014 20:45:33
Сообщений: 94
Откуда: Северный Кавказ
Рейтинг сообщения: 0
Пытаюсь изучить работу таймера и прерываний. MK AT89C2051, кварц 4 МГц. Компилятор языка Си ICC8051. По задумке таймер должен перезагружаться каждые 0,05 с (предустановка таймера 0xBEE5 - 48869). .... Но что-то пошло не так... Не могу разобраться сам в чём косяк.

Спасибо всем просмотревшим моё сообщение :) Разобрался сам...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Ср май 02, 2018 17:39:02 
Поставщик валерьянки для Кота

Карма: 20
Рейтинг сообщений: 253
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2090
Рейтинг сообщения: 0
Спасибо всем просмотревшим моё сообщение :) Разобрался сам...

Разберись заодно и с тем, что если изучаешь работу таймеров с прерываниями, но программа на Си не работает, то это еще не означает, что есть какие-то вопросы по C/C++ :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Ср май 02, 2018 19:08:20 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пт фев 14, 2014 20:45:33
Сообщений: 94
Откуда: Северный Кавказ
Рейтинг сообщения: 0
Трабл был исключительно программный... Чутка не дописал в обработке прерывания.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт май 08, 2018 15:22:32 
Грызет канифоль
Аватар пользователя

Карма: 2
Рейтинг сообщений: 10
Зарегистрирован: Сб янв 23, 2016 00:59:59
Сообщений: 287
Откуда: Чебоксары
Рейтинг сообщения: 0
Приветствую!!! Задача состоит в том,что в области EEPROM нужно разместить структуру, полями которой являются тоже структуры с двумя полями типа uint8.Зетем с помощью указателей уже работать с ними.
Но что-то делаю неверно и не могу понять.

Объявляю два новых типа структур:
Код:
typedef struct
{
   uint8_t Rashod;               
   uint8_t Temperatura;           
   
}Dannie_Mecyac; 

 typedef struct
{
   Dannie_Mecyac Yanvar;
   Dannie_Mecyac Fevral;
   Dannie_Mecyac Mart;
   ....
        Dannie_Mecyac Dekabr
}Mecyac ;


2. Определяю их
Код:
 
EEMEM Dannie_Mecyac GWS_Yanvar={0};
EEMEM Dannie_Mecyac GWS_Fevral={0};
EEMEM Dannie_Mecyac GWS_Mart={0};

EEMEM Mecyac GWS_Dannie={GWS_Yanvar,GWS_Fevral,GWS_Mart}; // на такую строчку компилятор ругается на какую то константу ссылается

Mecyac *PtrGWS_Dannie=&GWS_Dannie;


если написать просто
Код:
EEMEM Mecyac GWS_Dannie;

то компилятор молчит.

Проблемы:
1. Адреса полей,структур не совпадают с содержимым указателей на них...
2. Чет на подобную запись компил ошибку выдает.
Код:
GWS_Dannie.GWS_Yanvar.Rashod


Заранее благодарен!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт май 08, 2018 16:33:19 
Друг Кота

Карма: 38
Рейтинг сообщений: 618
Зарегистрирован: Пн апр 06, 2015 11:01:53
Сообщений: 3092
Откуда: москва, уфа
Рейтинг сообщения: 1
компилятор ругается на какую то константу ссылается
...
2. Чет на подобную запись компил ошибку выдает.
Код:
GWS_Dannie.GWS_Yanvar.Rashod

...

да, сообщения компилятора особо не важны и вообще не несут полезной информации :facepalm:

по второму пункту - поле структуры не так называется.

ЗЫ а чего за контроллер?

ЗЗЫ
1. Адреса полей,структур не совпадают с содержимым указателей на них...

каких указателей? у вас их ровно одна штука, на которую "компилятор ругается".


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт май 08, 2018 17:09:18 
Грызет канифоль
Аватар пользователя

Карма: 2
Рейтинг сообщений: 10
Зарегистрирован: Сб янв 23, 2016 00:59:59
Сообщений: 287
Откуда: Чебоксары
Рейтинг сообщения: 0
ЗЫ а чего за контроллер?

Atmega16A

Добавлено after 6 minutes 50 seconds:
по второму пункту - поле структуры не так называется.
посмотрел пару статей там так и обращаются, у меня вот так не катит, а как надо?

основная структура GWS_Dannie в ней поле структурного типа GWS_Yanvar в которой поле Rashod типа uint... и пишу так
Код:
GWS_Dannie.GWS_Yanvar.Rashod


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт май 08, 2018 17:20:40 
Друг Кота

Карма: 38
Рейтинг сообщений: 618
Зарегистрирован: Пн апр 06, 2015 11:01:53
Сообщений: 3092
Откуда: москва, уфа
Рейтинг сообщения: 1
честно говоря особо не помню чего там в атмегах, но имхо так вольно обращаться с EEPROM-ом не особо позволяется.

смотрите, что происходит по коду: вы объявляете, размещаете в EEPROM (утрированно) и инициализируете три структуры (GWS_Yanvar, GWS_Fevral, GWS_Mart). Затем объявляете, размещаете в EEPROM структуру Mecyac и заполняете три первые ее поля значениями соответствующих полей предыдущих структур. Это не имеет особого смысла.

Добавлено after 2 minutes 23 seconds:
посмотрел пару статей там так и обращаются, у меня вот так не катит, а как надо?
основная структура GWS_Dannie в ней поле структурного типа GWS_Yanvar

имя поля - не то, что вы туда положили, а то, как объявили тип. В typedef-е у вас просто Yanvar, Fevral, Mart - вот это и есть имена полей.

и предупрежу сразу, что так работать с календарем чудовищно неудобно. Вместо годовой структуры сделайте массив.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт май 08, 2018 17:20:57 
Грызет канифоль
Аватар пользователя

Карма: 2
Рейтинг сообщений: 10
Зарегистрирован: Сб янв 23, 2016 00:59:59
Сообщений: 287
Откуда: Чебоксары
Рейтинг сообщения: 0
каких указателей? у вас их ровно одна штука, на которую "компилятор ругается".

вот во вложении часть кода и контрольные значения...


Вложения:
2018-05-08_18-22-32.png [107.71 KiB]
Скачиваний: 411
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт май 08, 2018 17:22:42 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 1
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
судя по префиксу EEMEM, у вас WinAVR или другой вариант AVR-GCC. так вот, эти компиляторы напрямую с данными в EEPROM работать не умеют, соответственно, никаких указателей на данные в EEPROM быть не может со всеми вытекающими обращениями.
судя по названиям, вы выбрали крайне неудачный способ структурирования данных.
а главная проблема ваша в том, что первичная инициализация структур должна быть явной, т.е. в качестве данных для одной структуры нельзя указывать содержимое другой структуры.
то есть вам надо для GWS_Dannie использовать явную инициализацию {{0,0}, {1,1}, {2,2}, ... };

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт май 08, 2018 17:26:36 
Грызет канифоль
Аватар пользователя

Карма: 2
Рейтинг сообщений: 10
Зарегистрирован: Сб янв 23, 2016 00:59:59
Сообщений: 287
Откуда: Чебоксары
Рейтинг сообщения: 0
Вместо годовой структуры сделайте массив.

Массив структур имеете ввиду? я думал про это, но пока на ознакомительном этапе решил так же оставить....


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт май 08, 2018 17:27:46 
Друг Кота

Карма: 38
Рейтинг сообщений: 618
Зарегистрирован: Пн апр 06, 2015 11:01:53
Сообщений: 3092
Откуда: москва, уфа
Рейтинг сообщения: 1
в качестве данных для одной структуры нельзя указывать содержимое другой структуры

чойта? можно.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт май 08, 2018 17:35:26 
Ум, честь и совесть. И скромность.
Аватар пользователя

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

чойта? можно.

см. выше - ROMan2947 пытался, не вышло.

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт май 08, 2018 17:42:16 
Грызет канифоль
Аватар пользователя

Карма: 2
Рейтинг сообщений: 10
Зарегистрирован: Сб янв 23, 2016 00:59:59
Сообщений: 287
Откуда: Чебоксары
Рейтинг сообщения: 0
эти компиляторы напрямую с данными в EEPROM работать не умеют

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

Добавлено after 1 minute 22 seconds:
пытался, не вышло.
может нужно сначала компилятор научить работать с EEPROM,после выйдет?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт май 08, 2018 17:45:21 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 1
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
ROMan2947 писал(а):
а что за файл как подключить не ясно..
нате вам здрасте! вы что, не делали в начале #include <avr/eeprom.h>?!
ROMan2947 писал(а):
по ходу названия меня и запутали
дело не в названиях. судя по вашему коду, вам нужен массив структур, а не структура из 12 полей, каждое из которых тоже структура.

Добавлено after 42 seconds:
Но в любом случае при работе с EEPROM точечная нотация не прокатит, т.к. компилятор не умеет...

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

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


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

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


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

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


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

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


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