Помогите написать программу на МК PIC16F1824. Схема передающего контура для беспроводой зарядки. МК должен подовать на 6 и 5 выходы сигналы поочереди.Он будет задавать частоту колебания тока в цепи. Так же имеются две кнопки подключённые к входам 13 и 12, они будут менять частоту.
Та тут прога изи вообще. Мне хотя бы кусочек проги, чтоб было от чего оттолкнуться.
Вот тебе "...кусочек проги, чтоб было от чего оттолкнуться..." :
Код:
#include <xc.h>
#pragma config FOSC = INTOSC // INTOSC oscillator: I/O function on CLKIN pin #pragma config WDTE = ON // WDT disabled #pragma config PWRTE = ON // Таймер задержки включения питания/Power-up Timer Enable #pragma config MCLRE = ON // MCLR/VPP pin function is digital input #pragma config CP = OFF // Program memory code protection is disabled #pragma config CPD = OFF // Data memory code protection is disabled #pragma config BOREN = ON // Brown-out Reset enabled/сброс по понижению питания включен #pragma config CLKOUTEN = OFF // CLKOUT function is disabled. I/O or oscillator function on the CLKOUT pin #pragma config IESO = OFF // Internal/External Switchover mode is disabled #pragma config FCMEN = OFF // Fail-Safe Clock Monitor is disabled
#pragma config WRT = ALL // 000h to 7FFh write protected, no addresses may be modified by EECON control #pragma config PLLEN = OFF // 4x PLL enabled #pragma config STVREN = OFF // Stack Overflow or Underflow will not cause a Reset #pragma config BORV = HI // Brown-out Reset Voltage (VBOR) set to 2.7V #pragma config LVP = OFF // High-voltage on MCLR/VPP must be used for programming
void main( void ) { while(1); }
Ну а остальное сам допишешь, там - же "...изи вообще...", сам говоришь.
Вот тебе "...кусочек проги, чтоб было от чего оттолкнуться..." :
Код:
#include <xc.h>
#pragma config FOSC = INTOSC // INTOSC oscillator: I/O function on CLKIN pin #pragma config WDTE = ON // WDT disabled #pragma config PWRTE = ON // Таймер задержки включения питания/Power-up Timer Enable #pragma config MCLRE = ON // MCLR/VPP pin function is digital input #pragma config CP = OFF // Program memory code protection is disabled #pragma config CPD = OFF // Data memory code protection is disabled #pragma config BOREN = ON // Brown-out Reset enabled/сброс по понижению питания включен #pragma config CLKOUTEN = OFF // CLKOUT function is disabled. I/O or oscillator function on the CLKOUT pin #pragma config IESO = OFF // Internal/External Switchover mode is disabled #pragma config FCMEN = OFF // Fail-Safe Clock Monitor is disabled
#pragma config WRT = ALL // 000h to 7FFh write protected, no addresses may be modified by EECON control #pragma config PLLEN = OFF // 4x PLL enabled #pragma config STVREN = OFF // Stack Overflow or Underflow will not cause a Reset #pragma config BORV = HI // Brown-out Reset Voltage (VBOR) set to 2.7V #pragma config LVP = OFF // High-voltage on MCLR/VPP must be used for programming
void main( void ) { while(1); }
Спасибо! Кокраз то что мне надо! Тело проги я думаю сам напишу. Просто фиг его знает откуда брать все эти параметры.
Последний раз редактировалось Andrik)) Чт фев 18, 2016 20:10:38, всего редактировалось 1 раз.
Так там совсем уже изи осталось. Почитать прочитать раздел 24 CAPTURE/COMPARE/PWM MODULES в целом и раздел 24.4.1 HALF-BRIDGE MODE в частности, рассчитать подходящую частоту, намотать в зависимости от частоты катушки индуктивности и всё попрёт.
Так там совсем уже изи осталось. Почитать прочитать раздел 24 CAPTURE/COMPARE/PWM MODULES в целом и раздел 24.4.1 HALF-BRIDGE MODE в частности, рассчитать подходящую частоту, намотать в зависимости от частоты катушки индуктивности и всё попрёт.
Та тут прога изи вообще. Мне хотя бы кусочек проги, чтоб было от чего оттолкнуться.
Вот тебе "...кусочек проги, чтоб было от чего оттолкнуться..." :
Код:
#include <xc.h>
#pragma config FOSC = INTOSC // INTOSC oscillator: I/O function on CLKIN pin #pragma config WDTE = ON // WDT disabled #pragma config PWRTE = ON // Таймер задержки включения питания/Power-up Timer Enable #pragma config MCLRE = ON // MCLR/VPP pin function is digital input #pragma config CP = OFF // Program memory code protection is disabled #pragma config CPD = OFF // Data memory code protection is disabled #pragma config BOREN = ON // Brown-out Reset enabled/сброс по понижению питания включен #pragma config CLKOUTEN = OFF // CLKOUT function is disabled. I/O or oscillator function on the CLKOUT pin #pragma config IESO = OFF // Internal/External Switchover mode is disabled #pragma config FCMEN = OFF // Fail-Safe Clock Monitor is disabled
#pragma config WRT = ALL // 000h to 7FFh write protected, no addresses may be modified by EECON control #pragma config PLLEN = OFF // 4x PLL enabled #pragma config STVREN = OFF // Stack Overflow or Underflow will not cause a Reset #pragma config BORV = HI // Brown-out Reset Voltage (VBOR) set to 2.7V #pragma config LVP = OFF // High-voltage on MCLR/VPP must be used for programming
void main( void ) { while(1); }
Ну а остальное сам допишешь, там - же "...изи вообще...", сам говоришь.
А что делать, если все эти определения не работают, не находит среда их описания? Поставил MPLab X v6, ось Вин7, пустой проект компиляет 1,5 минуты, где всего один while(1) и больше нет ничего. Если вставляю этот кусок кода, то компиляция не проходит из-за отсутствия библиотеки с определениями этих битов. Работал до этого и с AVR, и с STM, не профи далеко, но блинк-то везде написать могу. А тут что-то затыка конская. PIC16F886 юзаю, блинк написал, но биты конфигурации расставляю в ручную при программровании через тулзу пиккитовскую. Сам пиккит3 в среде не работает, хотя определяется. MPLab уже переустанавливал.
Ох, ёёё... Ногодрыг - на С++? От це хлопец приколистъ А полиморфизьмъ в полной мере изпользьвать, али какъ? Кой-кто с STM32 уже слезает и пробуется на PIC16. Но эти ПИКи, особенно старых серий, это такая тягомотная тряхомудия, которую впору на асме прогать, как мы раньше и делали. Менее 400 байт ОЗУ, разделенные на банки - это такая лажа. Не, ну конечно ногодрыг для зарядки сделать - в самый раз, даже на дисплей 1602 хватит.
1. Сообщения об ошибках приведите. 2. PicKit3 в MPLABX-режим переводили?
А нет никаких ошибок, откуда им взяться, кода-то практически нет. Однако компиляется без малого 2 минуты. Малейшую правку вносишь-2 минуты компиляешь. Жесть.
Код:
#include <xc.h>
void main( void ) { while(1); }
Код:
make -f nbproject/Makefile-default.mk SUBPROJECTS= .build-conf make[1]: Entering directory 'C:/Mplab/Project/886_2.X' make -f nbproject/Makefile-default.mk dist/default/production/886_2.X.production.hex make[2]: Entering directory 'C:/Mplab/Project/886_2.X' "C:\Program Files\Microchip\xc8\v2.36\bin\xc8-cc.exe" -mcpu=16F886 -c -mdfp="C:/Program Files/Microchip/MPLABX/v6.00/packs/Microchip/PIC16Fxxx_DFP/1.3.42/xc8" -fno-short-double -fno-short-float -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=-3 -Wa,-a -DXPRJ_default=default -msummary=-psect,-class,+mem,-hex,-file -ginhx32 -Wl,--data-init -mno-keep-startup -mno-osccal -mno-resetbits -mno-save-resetbits -mno-download -mno-stackcall -mdefault-config-bits -std=c99 -gdwarf-3 -mstack=compiled:auto:auto -o build/default/production/main.p1 main.c ::: advisory: (2049) C99 compliant libraries are currently not available for baseline or mid-range devices, or for enhanced mid-range devices using a reentrant stack; using C90 libraries "C:\Program Files\Microchip\xc8\v2.36\bin\xc8-cc.exe" -mcpu=16F886 -Wl,-Map=dist/default/production/886_2.X.production.map -DXPRJ_default=default -Wl,--defsym=__MPLAB_BUILD=1 -mdfp="C:/Program Files/Microchip/MPLABX/v6.00/packs/Microchip/PIC16Fxxx_DFP/1.3.42/xc8" -fno-short-double -fno-short-float -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=-3 -Wa,-a -msummary=-psect,-class,+mem,-hex,-file -ginhx32 -Wl,--data-init -mno-keep-startup -mno-osccal -mno-resetbits -mno-save-resetbits -mno-download -mno-stackcall -mdefault-config-bits -std=c99 -gdwarf-3 -mstack=compiled:auto:auto -Wl,--memorysummary,dist/default/production/memoryfile.xml -o dist/default/production/886_2.X.production.elf build/default/production/main.p1 ::: advisory: (2049) C99 compliant libraries are currently not available for baseline or mid-range devices, or for enhanced mid-range devices using a reentrant stack; using C90 libraries :3558:: warning: (1311) missing configuration setting for config word 0x2007; using default :3558:: warning: (1311) missing configuration setting for config word 0x2008; using default
Memory Summary: Program space used Bh ( 11) of 2000h words ( 0.1%) Data space used 2h ( 2) of 170h bytes ( 0.5%) EEPROM space used 0h ( 0) of 100h bytes ( 0.0%) Configuration bits used 2h ( 2) of 2h words (100.0%) ID Location space used 4h ( 4) of 4h bytes (100.0%)
Memory Summary: Program space used Bh ( 11) of 2000h words ( 0.1%) Data space used 2h ( 2) of 170h bytes ( 0.5%) EEPROM space used 0h ( 0) of 100h bytes ( 0.0%) Configuration bits used 2h ( 2) of 2h words (100.0%) ID Location space used 0h ( 0) of 4h bytes ( 0.0%)
BUILD SUCCESSFUL (total time: 2s) Loading code from D:/YandexDisk/Electronics/Projects/886/Test.X/dist/default/production/Test.X.production.hex... Program loaded with pack,PIC16Fxxx_DFP,1.2.33,Microchip Loading completed
Откройте файл c:\Program Files\Microchip\xc8\v2.32\docs\chips\16f886.html Там все подробно расписано. Еще по битам конфигурации здесь: https://microchipdeveloper.com/mplabx:v ... ation-bits и в файлах 16f886.cfgmap и 16f886.cfgdata
Время сборки видно из лога.
Последний раз редактировалось phalanx Пт апр 15, 2022 10:37:36, всего редактировалось 7 раз(а).
Но эти ПИКи, особенно старых серий, это такая тягомотная тряхомудия, которую впору на асме прогать, как мы раньше и делали. Менее 400 байт ОЗУ, разделенные на банки - это такая лажа. Не, ну конечно ногодрыг для зарядки сделать - в самый раз, даже на дисплей 1602 хватит.
Ну почему же. Давеча склепал кухонный таймер на PIC16F877 и LCD от тестера. Дабы чайники не горели.) С часами, температурами, днями недели, будильниками... И ничё. Потребление мизер, а места ещё куча осталось.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения