Jump to content
NebsteR

Общие вопросы по PIC-микроконтроллерам

Recommended Posts

@Alex а версия компилятора ХС8 RPO стоит того, что бы ее покупать?
Интересен взгляд человека который владеет и пользуется.
Оптимизация сильно влияет на размер и скорость выполнения кода?
Есть ли какие-то еще полезные и стоящие плюшки?

Share this post


Link to post
Share on other sites

<Splav    Со временем получается намного лучше.>

Я так в этом даже и не сомневаюсь. :)

Только не совсем понял, что вас так обидело в моём комментарии? Наоборот, Имхо считаю, что  вы выбрали правильный путь - от АСМ к языку более высокого уровня. Т. к. опять же по моему, АСМ учит пониманию пошаговой логике построения процесса. Язык же более высокого уровня (как было замечено выше) может быть совершенно любым. И я только постарался напомнить, что там иногда реализация простых вещей может потребовать очень непростых (и совершенно индивидуальных для каждого языка и различных компиляторов с них) конструкций. Так что часто бывает логичнее написать кусок на АСМ. Так что только это я и имел в виду.

<my504  Просто Си как то следит за "философией", а АСМ позволяет писать практически как Бог на душу положит.>

Сорри, но "за философией следит"  компилятор, А так как нельзя предусмотреть аббревиатурой псевдоязыка  ВСЕ возможные случаю логики, то и компиляция не во всех случая может быть оптимальной. Я совсем не против любого языка, но каждый пишет и рекомендует так как считает более оптимальным.

А на АСМ да, вы правы, можно написать вроде бы и рабочее ... :( , но мы же не об этом.;)

Share this post


Link to post
Share on other sites
55 минут назад, Splav сказал:

а версия компилятора ХС8 RPO стоит того, что бы ее покупать?

Скажу так. В фри-версии, код искуственно раздувается компилятором. Причём, раздувается не слабо.
Разница между Free и Pro - ощутима.

Share this post


Link to post
Share on other sites

Приглашаем на вебинар «Умный и безопасный дом от STMicroelectronics – строим вмеSTе!» (23.06.2021)

Приглашаем 23/06/2021 всех желающих принять участие в вебинаре, посвященном проектированию и разработке систем умного дома на базе компонентов STMicroelectronics. Экосистема продукции STMicroelectronics включает в себя как электронные компоненты, так и средства разработки, готовые стеки протоколов и законченные примеры кода. Предлагаемые ресурсы позволят разработчику легко построить каркас системы и быстро создать прототип своего приложения. На вебинаре также расскажем о беспроводных интерфейсах – ведь благодаря поддержке стандартов BLE и ZigBee разработчики смогут при необходимости интегрировать устройства сторонних производителей и создавать открытые системы.
Подробнее

22.01.2021 в 01:22, Splav сказал:

Оптимизация сильно влияет на размер и скорость выполнения кода?

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

Но если говорить конкретно о ХС8 и PIC-ах, то необходимость оптимизации уровня PRO достаточно ограничена. Это может касаться только критических мест кода. По моим наблюдениям при работе с PIC18F27Q43 и XC8 версии 2.31 включение о2 (максимальный уровень версии Free) достаточно эффективно убирает простую избыточность (естественно, создавая проблемы для пошаговой отладки по исходному коду). Там, где важно заметно сократить время выполнения, следует писать на АСМе  - либо прямыми вставками в исходник на Си, либо отдельным АСМ-файлом с функциями написанными на АСМе. Однако последние модели МК Микрочипа практически не требуют подобных мероприятий, поскольку заточены по инициализацию весьма обширной и развитой периферии с минимальными телодвижениями в while(1) и ISR.

PS. PRO-версия добавляет два уровня оптимизации o3 и s. Третий уровень сокращает размер кода, а s увеличивает скорость. Причем увеличение скорости приводит к увеличению размера прошивки из-за инлайна части функций, чтобы сэкономить на call-return, а так же передаче аргументов через программный стек.

Share this post


Link to post
Share on other sites

Тактовые кнопки Panasonic - высококачественная коммутация в миниатюрном исполнении

Panasonic, один из мировых лидеров по производству высококачественных электромеханических компонентов, и Компэл представляют масштабное расширение складской программы. В настоящее время на складе Компэл доступны ведущие серии SMD-тактовых переключателей Panasonic в миниатюрных корпусах. Линейка тактовых кнопок Panasonic отличается многообразием компактных переключателей различных типоразмеров, форм штока и выводов. Переключатели отвечают важнейшим требованиям в ответственных применениях.

Подробнее

Доброго времени суток.

Нужна помощь в определении номиналов smd конденсаторов. Коротко: имеется плата с dspic33ep32mc204-i/pt который управляет дисплеем без маркировки ( визуально  на aliexpress nokia 5110 1 в 1),  а так же клавиатурой 4х4. Конденсаторы сломались при доставке почтой (сломался ферритовый сердечник обломок которого и покоцал часть дорожек (не критично) , и сломал 3 конденсатора. Вывода м/к (по даташиту Microchip) дорожки с которых идет управление клавиатурой  25, 26, 27, 30, 31, 32. 

cap.jpg

Share this post


Link to post
Share on other sites

Решения TE Connectivity для 112 Gbps архитектуры и серверов. Соединители STRADA Whisper

Данная статья является первой из публикаций, описывающих решения компании TE Connectivity для высокоскоростных соединений. Она посвящена соединителям и кабельным сборкам серии STRADA Whisper, главная особенность которых – поддержка работы с технологией PAM-4 и скорости передачи до 112 Гбит/с.
Подробнее

Ставьте на 100 нФ - не ошибетесь.


Я не раздаю рыбу. Я раздаю удочки.

ПРОСТОТА - ХУЖЕ ВОРОВСТВА!!!

Share this post


Link to post
Share on other sites
5 часов назад, alltum сказал:

и сломал 3 конденсатора.

измерить 4й целый ESR-метром религия не позволяет?

Share this post


Link to post
Share on other sites

Спасибо. Я начинающий (знания=0), скачал даташит но  my english very very bad,  поэтому это мне мало что дало.

Share this post


Link to post
Share on other sites

А что же Вы с  плохим английским собрались в электронике делать?


Я не раздаю рыбу. Я раздаю удочки.

ПРОСТОТА - ХУЖЕ ВОРОВСТВА!!!

Share this post


Link to post
Share on other sites

Извините, не знал что электроника только для англоязычных.

Share this post


Link to post
Share on other sites

@alltum , не передёргивайте. Быть англоязычным и знать технический английский - это две большие разницы. Вы бы ещё в программисты намылились, и возмущались, почему там требуется знание ещё каких-то языков, кроме русского. Кстати, у вас и с русским-то не очень... Вон, перед "что", "но", "который" и пр. запятые не ставите...

Учите. Не юродствуйте. :)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • возможно... на казусе выкладывали в разделе модели для протеза
    • Взять датчик без гильзы и соорудить для него корпус нужного размера. Примеры в теме выше есть.
    • нагреватель до свечения спиралей греться все равно не будет, нужно подвесить его см в 5 над ровным листом бумаги и включить, по потемневшему пятну на бумаге можно более точнее определить качество.
    • Ну а по советам, замерам что-нибудь было? Неплохо бы ввести в курс дела помогающих Ведь написать "вот сегодня обнаружил что..." это ни о чём, равносильно тому, что    
    • Схему с первого поста при последовательнрм соединении должно двухполярно работать с двумя независимыми обмотками трансформатора. Вроде должно работать? Так шунты на отрицательных шинах остаются это важно для меня
    • Добрый день. Может кто-то сможет реализовать. Цель следующая: Управлять голосом через Алису+ИК-пульт Яндекса приставкой Nvidia Shield 2019 Pro (хотя бы основными функциями: Вкл/Выкл, выход в основное меню, изменение громкости) Т.к. у данной приставки нет управления по ИК, то необходимо собрать ИК приемник для подключения к USB-порту приставки, а так же, соответственно нужен ИК пульт, при помощи которого можно будет обучить ИК-пульт Яндекса. Принципиальная возможность управления данной приставкой через подключенный к ней по USB ИК-приемник - есть. Пробовал подключать к ней вот такой пульт с Али: https://aliexpress.ru/item/32357508104.html?spm=a2g0s.9042311.0.0.264d33edQHzqJu&sku_id=52279117793 В итоге одна из кнопок данного пульта может включать приставку, больше никакие кнопки и команды не срабатывают. Обучить Яндекс этой единственной кнопке, кстати не получилось, хотя Яндекс в принципе обучаемый (обучил его некоторым командам пульта от ресивера Harman Kardon)  
  • Similar Content

    • By Ilya Gray
      Доброго времени суток!
      В целом, имеется опыт разработки малых устройств, что-то понимаю, в общем, старательно читаю даташиты, даже понимаю их, но на звание серьёзного инженера (пока что) не претендую.
      Я пытаюсь использовать I2C на 8-битном PIC16F18326. Сижу в даташитах. Всё понимаю, всё делаю, на мой неопытный взгляд, правильно. Даже копирую полностью рабочие примеры (я даже купил такой же микроконтроллер, как в примере, скопировал код, контролируя, что он делает. Но всё равно не работает - SCL/SDA на 5в и всё тут).
      Так вот: PIC16F18326 on breadboard (прошу прощения, я хз как это по-русски) на внутреннем 32мгц кристалле. Чип пашет, без проблем моргаю LEDкой. Ну, думаю, щас быстренько подниму I2C. В итоге SCL SDA сидят на 5в без движения. Я использую LED для отладки. Судя по LED, код заloopливается в месте, где проверяется while PIR1bits.SSP1IF==0. Я уже везде был, кучу форумов перерыл. Уже попробовал всё, что мог представить. Я довольно новый в мире PIC, хотел попробовать их, а они ужасно сопротивляются. Уже 2 недели долблюсь безуспешно.
      Подтяжки 10к, проблем с ними никогда не было.
      Собственно, вот код (я уже там попробовал повыключать ADC, вычитал про баг, что сначала I2C пины надо делать OUTPUT LOW, а потом уже INPUT из-за бага MSSP, но ничего не помогло).
      // PIC16F18326 Configuration Bit Settings // 'C' source line config statements // CONFIG1 #pragma config FEXTOSC = OFF // FEXTOSC External Oscillator mode Selection bits (Oscillator not enabled) #pragma config RSTOSC = HFINT32 // Power-up default value for COSC bits (HFINTOSC with 2x PLL (32MHz)) #pragma config CLKOUTEN = OFF // Clock Out Enable bit (CLKOUT function is disabled; I/O or oscillator function on OSC2) #pragma config CSWEN = ON // Clock Switch Enable bit (Writing to NOSC and NDIV is allowed) #pragma config FCMEN = ON // Fail-Safe Clock Monitor Enable (Fail-Safe Clock Monitor is enabled) // CONFIG2 #pragma config MCLRE = ON // Master Clear Enable bit (MCLR/VPP pin function is MCLR; Weak pull-up enabled) #pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled) #pragma config WDTE = OFF // Watchdog Timer Enable bits (WDT disabled; SWDTEN is ignored) #pragma config LPBOREN = OFF // Low-power BOR enable bit (ULPBOR disabled) #pragma config BOREN = ON // Brown-out Reset Enable bits (Brown-out Reset enabled, SBOREN bit ignored) #pragma config BORV = LOW // Brown-out Reset Voltage selection bit (Brown-out voltage (Vbor) set to 2.45V) #pragma config PPS1WAY = ON // PPSLOCK bit One-Way Set Enable bit (The PPSLOCK bit can be cleared and set only once; PPS registers remain locked after one clear/set cycle) #pragma config STVREN = ON // Stack Overflow/Underflow Reset Enable bit (Stack Overflow or Underflow will cause a Reset) #pragma config DEBUG = OFF // Debugger enable bit (Background debugger disabled) // CONFIG3 #pragma config WRT = OFF // User NVM self-write protection bits (Write protection off) #pragma config LVP = ON // Low Voltage Programming Enable bit (Low Voltage programming enabled. MCLR/VPP pin function is MCLR. MCLRE configuration bit is ignored.) // CONFIG4 #pragma config CP = OFF // User NVM Program Memory Code Protection bit (User NVM code protection disabled) #pragma config CPD = OFF // Data NVM Memory Code Protection bit (Data NVM code protection disabled) // #pragma config statements should precede project file includes. // Use project enums instead of #define for ON and OFF. #include <xc.h> #include <htc.h> #include <stdio.h> #include <stdint.h> #define _XTAL_FREQ 32000000 void i2c_is_idle(void){ //while(!PIR1bits.SSP1IF); //while(SSPCON2bits.SEN==1 || SSPCON2bits.RSEN==1 || SSPCON2bits.PEN==1 || SSPCON2bits.RCEN==1 || SSPCON2bits.ACKEN==1 || SSPSTATbits.R_nW==1){}; while(PIR1bits.SSP1IF == 0){ PORTCbits.RC2=1; }; // SSP1IF is set when operation complete PORTCbits.RC2=0; PIR1bits.SSP1IF = 0; // clear interrupt flag } void i2c_start(void){ i2c_is_idle(); SSPCON2bits.SEN = 1; } void i2c_rep_start(void){ i2c_is_idle(); SSPCON2bits.RSEN = 1; } void i2c_stop(void){ i2c_is_idle(); SSPCON2bits.PEN = 1; } void i2c_write(uint8_t i2c_data){ i2c_is_idle(); SSPBUF = i2c_data; while(SSPSTATbits.BF != 0); while(SSPCON2bits.ACKSTAT != 0); } uint8_t i2c_read(uint8_t ack){ uint8_t recieve =0; i2c_is_idle(); SSPCON2bits.RCEN = 1; while(SSPSTATbits.BF != 1); recieve = SSPBUF; SSPCON2bits.ACKEN = ack; return recieve; } void i2c_init(void){ TRISCbits.TRISC0 = 1; TRISCbits.TRISC1 = 1; SSPSTATbits.SMP = 1; SSPSTATbits.CKE = 0; SSPCONbits.SSPM = 0x08; SSPADD = 79; SSPCONbits.SSPEN = 1; } void main(void) { ANSELCbits.ANSC0 = 0; //ADC RC0 OFF ANSELCbits.ANSC1 = 0; //ADC RC1 OFF TRISCbits.TRISC2=0; //LED PIN TRISCbits.TRISC0=0; //MSSP bug counter TRISCbits.TRISC1=0; //MSSP bug counter //__delay_ms(5); LATCbits.LATC1=0; //MSSP bug counter LATCbits.LATC0=0; //MSSP bug counter //__delay_ms(5); INTCONbits.GIE=1; //global interrupt en INTCONbits.PEIE=1; //peripheral interrupt en ADCON0bits.ADON=0; //unpower adc just in case i2c_init(); //THIS SETS TRISC BITS FOR SCL SDA while(1){ i2c_start(); i2c_write(0x3C); i2c_stop(); } return; } Задача: просто увидеть коммуникацию на SCL SDA, я уже потом по даташитам таргет девайсов без проблем напишу дрова. Не получается именно осуществлять коммуникацию.
      Подскажите, пожалуйста, я не понимаю, где я дурак, а между тем волос на голове становится всё меньше, а те, что остались, стремительно приобретают серый окрас, ибо 2 недели я долбаюсь с одной проблемой. Благодарю за ваши советы. Спасибо.
       
    • By Николай кол
      Привет, у меня есть вопрос, как передать данных с микроконтроллера pic через блютуз модуль HC-05 на телефон в виде графика.Не могли бы вы показать скрипт или статю.Про Arduino много а про pic не (нужно передать данные с микроконтроллера на телефон а не на оборот).У же есть приложение на app inventor 2.Нужно примерно как тут https://www.youtube.com/watch?v=WzoCQ2fRsRQ
    • By duty
      Привет, участникам форума! Подскажите, пожалуйста, как можно реализовать связь микроконтроллера pic с адресным ключом (ds2405 или ds2408) по 1-wire (на шине будут висеть несколько ключей)  для считывания pio ключа, во входном режиме, т.е на pio поступает сигнал  с магнитоконтактного датчика о срабатывание его или нет.    Datasheet читал, но мало чего понял.  Тестирование произвожу в proteus 8.6
    • By Максим123456789
      делаю диплом, в схеме у меня микроконтроллер PIC16F688 и мне нужно его заменить на ATmega. Не могу найти похожий
×
×
  • Create New...