Например TDA7294

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





Текущее время: Вт апр 16, 2024 08:02:13

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


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



Начать новую тему Ответить на тему  [ Сообщений: 1334 ]     ... , , , 55, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Чт янв 20, 2022 13:28:56 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Вам UART что-ли нужен ? Или что ?

PS: По 3 дня отвечаете. Классный диалог получается. :)))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Сб янв 22, 2022 10:44:03 
Прорезались зубы
Аватар пользователя

Карма: -6
Рейтинг сообщений: -17
Зарегистрирован: Вт июн 30, 2009 09:17:54
Сообщений: 202
Откуда: г.Сыктывкар
Рейтинг сообщения: 0
Цитата:
Нужен K-Line, он похож на UART, только там напряжение от 0 до 12 вольт


Вот получилось отправить байт 01010101 через ножку 21
Спойлер
Код:
/* Main.c file generated by New Project wizard
 *
 * Created:   Вт янв 18 2022
 * Processor: PIC18F25K80
 * Compiler:  MPLAB XC8
 */

#include <xc.h>
#define _XTAL_FREQ 4000000
#define Bit_out LATBbits.LATB0            //  Bit_out = 21-нога
void main(void)
 {   
   TRISBbits.TRISB0 = 0;   //  21-нога  out
 
    int i;                                        // переменная      i
   char byte =  0x55;      // переменная     byte

      while (1)
      {
                Delay10TCYx(1000);        //  Пауза    
    Bit_out   = 0;                                      //  СТАРТ
                Delay10TCYx(3);        //  СТАРТ  пауза 9600 бод
              for(char i = 0;  i  <  8; i ++)              // увеличить переменную i на 1 
   {
                  Delay10TCYx(12);         //   пауза 9600 бод
     Bit_out = (byte  >>  i) & 1;               // вытолкнуть биты на ножку 21 (RB0)     
        }
               Delay10TCYx(18);        //  СТОП   пауза 9600 бод    
    Bit_out  = 1;                                    //  СТОП

     }
 }


Вложения:
21_out_01010101.png [22.11 KiB]
Скачиваний: 88
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Сб янв 22, 2022 17:52:22 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Пфффф. Обычный UART. Зачем ногодрыг, если есть аппаратный ?


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

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Сб янв 22, 2022 21:45:00 
Прорезались зубы
Аватар пользователя

Карма: -6
Рейтинг сообщений: -17
Зарегистрирован: Вт июн 30, 2009 09:17:54
Сообщений: 202
Откуда: г.Сыктывкар
Рейтинг сообщения: 0
K-Line однопроводная, в основном применяется в автомобильной промышленности.


Вложения:
UART_ЭБУ.GIF [52.94 KiB]
Скачиваний: 108
Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Вс янв 23, 2022 12:57:51 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
В это проце есть 2 аппаратных UART'а. Зачем извращение с ногодрыгом ?


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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Вс янв 23, 2022 21:06:42 
Прорезались зубы
Аватар пользователя

Карма: -6
Рейтинг сообщений: -17
Зарегистрирован: Вт июн 30, 2009 09:17:54
Сообщений: 202
Откуда: г.Сыктывкар
Рейтинг сообщения: 0
адаптер-ELM327 - что имеем, то имеем (500 рублей у китайцев)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Пн янв 24, 2022 00:03:09 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Повесить светодиоды на ноги аппаратного UART и вывести UART на левые ноги - это верх мазохизма :facepalm:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Пн янв 24, 2022 05:03:31 
Друг Кота
Аватар пользователя

Карма: 138
Рейтинг сообщений: 2712
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 21784
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Нее, Алекс... Тут очень глубоко зарытая идея защиты от копирования. Ибо всякий обнаруживший такой мазохизм немедля бросит затею реверса. Быть мазохистом - это крайне обидно для настоящего посона. )))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Пн янв 24, 2022 16:49:20 
Сверлит текстолит когтями

Карма: 20
Рейтинг сообщений: 296
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1218
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
В CCS для "слабых" PICs uint64_t нет. Есть проверенный метод работы с uint64_t? (Метод может быть не быстрым).

Мне примерно нужно "масштабировать" дроби - целочисленный делитель INT, числитель FRAC и знаменатель MOD. Числа большие и достигают "вершины" uint32_t. Число 4095 может быть для другой случай и 1048575. Разделить напр. 1000/1000 в данном случае быть не должно - теряю точность "внизу" [Hz].

В Arduino для FRAC/MOD использую это, но в CCS нет uint64_t:
Код:
uint32_t scaling_fraction(uint32_t num, uint32_t denum) {
  uint64_t u64 = (uint64_t)num;

  u64 = u64 * 4095 / denum;
  num = (uint32_t)u64;
  return num;

float по нескольким причинам я избегаю использовать :).
А float работает (если не заменю с чем-то другим методом).

Пример:
uint32_t a = 49999374;
uint32_t b = 99998750;
=> a / b = 2047 / 4095


Последний раз редактировалось veso74 Пн янв 24, 2022 17:13:47, всего редактировалось 2 раз(а).

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Пн янв 24, 2022 17:09:28 
Друг Кота
Аватар пользователя

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

А в чем может быть проблема? Обычная арифметика и извлечение квадратного корня не имеют вообще никаких ограничений по стандартной "школьной" методике.
Вы столбиком арифметику + - и * делать умеете? Это оно и есть. Можете посмотреть как делается 32-разрядная арифметика и воспроизвести ее в 64 разрядах. Деление и извлечение корня я предпочитаю делать итерационным последовательным приближением. Хотя нужно бы посчитать, возможно Ньютон-Рафсон и побыстрее будет для 8 разрядов.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Сб янв 29, 2022 13:32:20 
Родился

Зарегистрирован: Сб янв 29, 2022 12:48:27
Сообщений: 2
Рейтинг сообщения: 0
https://yandex.ru/video/preview/?text=% ... 5369862835
Помогите кто сможет
Делаю все полностью одинаково , без ошибок , там часы идут у меня
00:00:01`и все ! Не получается что то
Спасибо !


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Вс янв 30, 2022 13:42:26 
Родился

Зарегистрирован: Сб янв 29, 2022 12:48:27
Сообщений: 2
Рейтинг сообщения: 0
Всем спасибо , вопрос закрыт !


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Ср фев 02, 2022 10:12:36 
Прорезались зубы
Аватар пользователя

Карма: -6
Рейтинг сообщений: -17
Зарегистрирован: Вт июн 30, 2009 09:17:54
Сообщений: 202
Откуда: г.Сыктывкар
Рейтинг сообщения: 0
Вот сигнал от UART и от "ногадрыга"
Видно, что "ногадрыга" не точно делает паузы в бите
Придётся изучать таймер TMR2, чтобы получить стандарт 104мкс
Спойлер
Код:
//----------
#include <p18F25K80.h>                             // для настройки под выбранный контроллер

void init(void)
{
// настройка генератора
// в регистре конфигурации выбран внешний тактовый генератор XT,  умножитель выключен
// в OSCCON выбираем 4 мГц  основной генератор
OSCTUNE = 0b00000000;
         //               ||++++++---TUN<5:0>: 000000 = Центральная частота; Быстрый Осциллятор RC работает на калиброванной частоте
       //               |+---------PLLEN: Frequency Multiplier 4xPLL     0 = PLL выключен
    //               +----------: Internal Oscillator Low-Frequency

 OSCCON = 0b01010000;             // 101 = HF-INTOSC/4 output frequency is used (4 MHz)
           //           ||||||++---SCS<1:0>: тактовая частота берется с основного модуля. основной генератор (работа через PLL  должен быть 00)
         //              |||||+-----HFIOFS: бит - Частота стабильна
       //              ||||+------OSTS: бит статуса (какой выбран генератор)
      //              |+++-------IRCF<2:0>: выбор частоты тактового генератора
     //              +----------: функция генератора в режиме сна. SPLLEN умножитель 1-включен
OSCCON2 = 0b00000000;
         //               |||||||+---LFIOFS:бит стабильной частоты LFINTOSC режима
        //               ||||||+----MFIOFS:бит стабильной частоты MFINTOSC режима
       //               |||||+-----PRISD:бит отключения главного (внешнего) генератора
      //               ||||+------SOSCGO: бит контроля запуска вторичного (внешнего) генератора
      //               |||+-------MFIOSEL: бит переключения источника чатоты для MFINTOSC режима
     //               ||+--------Unimplemented: Read as ‘0’.
    //                |+---------SOSCRUN: бит статуса источника частоты от вторичного генератора
    //                +----------: бит статуса получения частоты от умножителя тактовой чатоты

//----------
                   // настройка портов
     ADCON1=1;                                                    //  Отключаем все аналоговые буфера
     ADCON1=0b01111111;                                 //  Отключаем все аналоговые буфера 
   TRISBbits.TRISB0 = 0;                   // 21-нога  out
 //   LATBbits.LATB0 = 1;                  // установить на B0 плюс
                  // UART
      TRISCbits.TRISC6 = 0;   // TX output
      TRISCbits.TRISC7 = 1;   // RX input

                                    // настройка Open1USART
  Open1USART ( USART_TX_INT_OFF &               // Прерывание передачи OFF
                     USART_RX_INT_ON &                // Получать прерывание ON
                     USART_ASYNCH_MODE &        // Асинхронный режим
                     USART_EIGHT_BIT &                 // 8-bit Передача / прием
                     USART_CONT_RX &                 // Непрерывный прием
                     USART_BRGH_HIGH,               // Высокая скорость передачи бода
                                         SPBRG = 25 );           //  ((4000000 : 16) : 9600)  - 1 = 25,04 Погрешность скорости обмена  9600

}


#define Bit_out LATBbits.LATB0             // Bit_out = 21-нога
void main(void)
 {
    init();         //  Инициализировать функцию  void init(void)
   TRISBbits.TRISB0 = 0;                   // 21-нога  out
   int i;                                               // переменная      i
   char byte =   0x55;                      // переменная     byte    0b01010101; 
   char    txbyte = 0x55;

   
   while (1)
   
  if (TXSTAbits.TRMT == 1)           //  проверит UART занят передачей или нет
    {
     
 
       while(Busy1USART());          //  Ждем пока освободится модуль иначе будут прострелы
 
       {
       Write1USART(txbyte);            //  Пишем наш байт
       }
       Delay10TCYx(10);
    }
  else
    {
                Delay10TCYx(50);                //  Пауза   
    Bit_out   = 0;                                      //  СТАРТ
               Delay10TCYx(4);                   //  СТАРТ  пауза 9600 бод
              for(char i = 0;  i  <  8; i ++)              // увеличить переменную i на 1
   {
                 Delay10TCYx(4);                        // пауза 9600 бод
     Bit_out = (byte  >>  i) & 1;                       // вытолкнуть биты на ножку 21 (RB0)     
        }
               Delay10TCYx(10);                         //  СТОП   пауза 9600 бод   
    Bit_out  = 1;                                               //  СТОП

     }
   
 }


Вложения:
bit_UART-out_21pin-out_.png [46.58 KiB]
Скачиваний: 87
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Ср фев 02, 2022 11:30:19 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
cxem писал(а):
Придётся изучать таймер TMR2
Он в этих процах элементарнейший. Там изучать то нечего.
Стоит только взглянуть на картинку :
СпойлерИзображение
Вложение:
2022-02-02_11-27-03.png [20.73 KiB]
Скачиваний: 31
и всё станет понятно.
Вся его настройка сводится к конфигурировании одного регистра T2CON.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Ср фев 02, 2022 13:46:55 
Ум, честь и совесть. И скромность.
Аватар пользователя

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

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Ср фев 02, 2022 14:03:23 
Прорезались зубы
Аватар пользователя

Карма: -6
Рейтинг сообщений: -17
Зарегистрирован: Вт июн 30, 2009 09:17:54
Сообщений: 202
Откуда: г.Сыктывкар
Рейтинг сообщения: 0
В интернете нахожу только примеры заточенные на курсовые: арифметика и алгебра.
Примеров по K-Line нет.
Почему на 2 транзисторах работает, как автомат Калашников
А на PIC18F25K80 не хочет.


Вложения:
K-Line_Rx_Tx__1.GIF [48.84 KiB]
Скачиваний: 85
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Ср фев 02, 2022 14:50:06 
Ум, честь и совесть. И скромность.
Аватар пользователя

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

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Ср фев 02, 2022 21:31:41 
Прорезались зубы
Аватар пользователя

Карма: -6
Рейтинг сообщений: -17
Зарегистрирован: Вт июн 30, 2009 09:17:54
Сообщений: 202
Откуда: г.Сыктывкар
Рейтинг сообщения: 0
Изучаю K-Line:
1.Протокол связи с ЭБУ
2.Протокол данных
Обидно за PIC18F25K80, который проигрывает 2 транзисторам
1.Скорость связи с ЭБУ слабая: Если даже UART поднять до 115200 бод
2.Почему-то говорят, что он не умеет отправлять в ЭБУ байты длиннее 8 байт
Цитата:
один аппаратный USART использовать для связи с компьютером, а софтовый - для К-линии, причем с возможностью трансляции в К-линию как "своих" данных из МК, так и тех, что присылает комп?

- Да
Специфика работы с ЭБУ:
1. Скорость связи своя(обычно 10400 бод)
2. Пробуждение ЭБУ(обычно импульс 25/25мс)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Ср фев 02, 2022 23:20:00 
Встал на лапы
Аватар пользователя

Карма: 3
Рейтинг сообщений: 17
Зарегистрирован: Чт ноя 26, 2015 23:22:35
Сообщений: 124
Откуда: не с Уфы
Рейтинг сообщения: 0
:facepalm:
Спойлер


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Ср фев 02, 2022 23:43:32 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
cxem писал(а):
1. Скорость связи своя(обычно 10400 бод)
2. Пробуждение ЭБУ(обычно импульс 25/25мс)
формировать программно сигналы K-Line на скорости чуть больше, чем 9600 - имхо, это не может быть проблемой. похуже с приёмом, но, предполагаю, и тут не принципиально. я в PIC-ах вообще ни ухом ни рылом, не могу утверждать, что все получится... только предполагаю по аналогии с AVR, что проблем быть не должно никаких серьёзных.

но на вашем месте я не стал бы заморачиваться с PIC-ом вообще, а просто сниффил бы на компьютере обмен через СОМ-порт, и видел бы то же самое.

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

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


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

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


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

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


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

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


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