МК должен подовать на 6 и 5 выходы сигналы поочереди.Он будет задавать частоту колебания тока в цепи. Так же имеются две кнопки подключённые к входам 13 и 12, они будут менять частоту.
Программа на C++ для МК PIC16F1824
Re: Программа на C++ для МК PIC16F1824
Здесь viewforum.php?f=53 точно помогут.
Re: Программа на C++ для МК PIC16F1824
otest писал(а):Здесь viewforum.php?f=53 точно помогут.
Та тут прога изи вообще. Мне хотя бы кусочек проги, чтоб было от чего оттолкнуться.
Re: Программа на C++ для МК PIC16F1824
Andrik)) писал(а):otest писал(а):Здесь viewforum.php?f=53 точно помогут.
Та тут прога изи вообще. Мне хотя бы кусочек проги, чтоб было от чего оттолкнуться.
Вот тебе "...кусочек проги, чтоб было от чего оттолкнуться..." :
Код: Выделить всё
#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);
}
Ну а остальное сам допишешь, там - же "...изи вообще...", сам говоришь.
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Программа на C++ для МК PIC16F1824
Немного дополню :А то вдруг человек растеряется и не разберётся куда вставлять "команды" 
Код: Выделить всё
while(1){
}
Re: Программа на C++ для МК PIC16F1824
И не забыть воткнуть в тело цикла - //To Do ...

Re: Программа на C++ для МК PIC16F1824
shindax писал(а):Вот тебе "...кусочек проги, чтоб было от чего оттолкнуться..." :Код: Выделить всё
#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 раз.
Re: Программа на C++ для МК PIC16F1824
а что это за библиотека <xc.h>?
Re: Программа на C++ для МК PIC16F1824
Паразиты!
И не лень издеваться над котенком?
Когда найдешь её - ребята помогут.Andrik)) писал(а):а что это за библиотека <xc.h>?
Лучше умному тупить, чем тупому умничать
Re: Программа на C++ для МК PIC16F1824
anatol378 писал(а):Паразиты!И не лень издеваться над котенком?
Когда найдешь её - ребята помогут.Andrik)) писал(а):а что это за библиотека <xc.h>?
Это для настройки под выбранный контроллер
Re: Программа на C++ для МК PIC16F1824
Так там совсем уже изи осталось. Почитать прочитать раздел 24 CAPTURE/COMPARE/PWM MODULES в целом и раздел 24.4.1 HALF-BRIDGE MODE в частности, рассчитать подходящую частоту, намотать в зависимости от частоты катушки индуктивности и всё попрёт. 
Re: Программа на C++ для МК PIC16F1824
shindax писал(а):Так там совсем уже изи осталось. Почитать прочитать раздел 24 CAPTURE/COMPARE/PWM MODULES в целом и раздел 24.4.1 HALF-BRIDGE MODE в частности, рассчитать подходящую частоту, намотать в зависимости от частоты катушки индуктивности и всё попрёт.
Ну это уже не изи
А какую частоту выбрать?
Re: Программа на C++ для МК PIC16F1824
Ту, на которой потери от перезаряда затворов Q1 и Q2 еще будут приемлемыми.Andrik)) писал(а):А какую частоту выбрать?
- Из овощей я больше всего люблю пельмени... © Соседский Мальчик
Re: Программа на C++ для МК PIC16F1824
[uquote="shindax",url="/forum/viewtopic.php?p=2658914#p2658914"]
Ну а остальное сам допишешь, там - же "...изи вообще...", сам говоришь.[/uquote]
А что делать, если все эти определения не работают, не находит среда их описания? Поставил MPLab X v6, ось Вин7, пустой проект компиляет 1,5 минуты, где всего один while(1) и больше нет ничего. Если вставляю этот кусок кода, то компиляция не проходит из-за отсутствия библиотеки с определениями этих битов. Работал до этого и с AVR, и с STM, не профи далеко, но блинк-то везде написать могу. А тут что-то затыка конская.
PIC16F886 юзаю, блинк написал, но биты конфигурации расставляю в ручную при программровании через тулзу пиккитовскую. Сам пиккит3 в среде не работает, хотя определяется. MPLab уже переустанавливал.
Вот тебе "...кусочек проги, чтоб было от чего оттолкнуться..." :Andrik)) писал(а):Та тут прога изи вообще. Мне хотя бы кусочек проги, чтоб было от чего оттолкнуться.otest писал(а):Здесь http://radiokot.ru/forum/viewforum.php?f=53 точно помогут.
Код: Выделить всё
#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 уже переустанавливал.
Re: Программа на C++ для МК PIC16F1824
1. Сообщения об ошибках приведите.
2. PicKit3 в MPLABX-режим переводили?
2. PicKit3 в MPLABX-режим переводили?
Re: Программа на C++ для МК PIC16F1824
Прям таки С++ да ещё и для PIC16!))
Даже не знаю кто такое умеет... IAR?
Видно что ТС не просто изи, а изи-изи-изи.))
Даже не знаю кто такое умеет... IAR?
Видно что ТС не просто изи, а изи-изи-изи.))
Re: Программа на C++ для МК PIC16F1824
Ох, ёёё... Ногодрыг - на С++? От це хлопец приколистъ
А полиморфизьмъ в полной мере изпользьвать, али какъ? 
Кой-кто с STM32 уже слезает и пробуется на PIC16. Но эти ПИКи, особенно старых серий, это такая тягомотная тряхомудия, которую впору на асме прогать, как мы раньше и делали. Менее 400 байт ОЗУ, разделенные на банки - это такая лажа. Не, ну конечно ногодрыг для зарядки сделать - в самый раз, даже на дисплей 1602 хватит.
Кой-кто с STM32 уже слезает и пробуется на PIC16. Но эти ПИКи, особенно старых серий, это такая тягомотная тряхомудия, которую впору на асме прогать, как мы раньше и делали. Менее 400 байт ОЗУ, разделенные на банки - это такая лажа. Не, ну конечно ногодрыг для зарядки сделать - в самый раз, даже на дисплей 1602 хватит.
Re: Программа на C++ для МК PIC16F1824
[uquote="phalanx",url="/forum/viewtopic.php?p=4214480#p4214480"]1. Сообщения об ошибках приведите.
2. PicKit3 в MPLABX-режим переводили?[/uquote]
А нет никаких ошибок, откуда им взяться, кода-то практически нет. Однако компиляется без малого 2 минуты. Малейшую правку вносишь-2 минуты компиляешь. Жесть.
PS. Убрал вообще всё, оставил только цикл
Время компиляции 2 минуты 43 секунды. 
2. PicKit3 в MPLABX-режим переводили?[/uquote]
А нет никаких ошибок, откуда им взяться, кода-то практически нет. Однако компиляется без малого 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%)
make[2]: Leaving directory 'C:/Mplab/Project/886_2.X'
make[1]: Leaving directory 'C:/Mplab/Project/886_2.X'
BUILD SUCCESSFUL (total time: 1m 48s)
Loading code from C:/Mplab/Project/886_2.X/dist/default/production/886_2.X.production.hex...
Program loaded with pack,PIC16Fxxx_DFP,1.3.42,Microchip
Loading completed
Код: Выделить всё
void main( void )
{
while(1);
}Re: Программа на C++ для МК PIC16F1824
Код для PIC16F886 + XC8 2.32
В настройках проекта: XC8 Global Options :
C standard -> выбрать C 90
XC8 Linker -> Link C Library -> выбрать C90
Я обычно этого не делаю, MPLABX сам подставляет, что нужно, это просто чтобы не выводились предупреждения
Вывод компилятора:
Откройте файл c:\Program Files\Microchip\xc8\v2.32\docs\chips\16f886.html
Там все подробно расписано. Еще по битам конфигурации здесь:
https://microchipdeveloper.com/mplabx:v ... ation-bits
и в файлах 16f886.cfgmap и 16f886.cfgdata
Время сборки видно из лога.
Код: Выделить всё
#include <xc.h>
#pragma config FOSC = INTRC_CLKOUT
#pragma config WDTE = OFF
#pragma config PWRTE = ON
#pragma config MCLRE = OFF
#pragma config CP = OFF
#pragma config CPD = OFF
#pragma config BOREN = OFF
#pragma config IESO = OFF
#pragma config LVP = OFF
#pragma config BOR4V = BOR21V
#pragma config WRT = OFF
void main( void )
{
while(1);
}
C standard -> выбрать C 90
XC8 Linker -> Link C Library -> выбрать C90
Я обычно этого не делаю, MPLABX сам подставляет, что нужно, это просто чтобы не выводились предупреждения
Вывод компилятора:
Код: Выделить всё
CLEAN SUCCESSFUL (total time: 81ms)
make -f nbproject/Makefile-default.mk SUBPROJECTS= .build-conf
make[1]: Entering directory 'D:/YandexDisk/Electronics/Projects/886/Test.X'
make -f nbproject/Makefile-default.mk dist/default/production/Test.X.production.hex
make[2]: Entering directory 'D:/YandexDisk/Electronics/Projects/886/Test.X'
"C:\Program Files\Microchip\xc8\v2.32\bin\xc8-cc.exe" -mcpu=16F886 -c -mdfp="C:/Program Files/Microchip/MPLABX/v5.50/packs/Microchip/PIC16Fxxx_DFP/1.2.33/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 -std=c90 -gdwarf-3 -mstack=compiled:auto:auto -o build/default/production/main.p1 main.c
"C:\Program Files\Microchip\xc8\v2.32\bin\xc8-cc.exe" -mcpu=16F886 -Wl,-Map=dist/default/production/Test.X.production.map -DXPRJ_default=default -Wl,--defsym=__MPLAB_BUILD=1 -mdfp="C:/Program Files/Microchip/MPLABX/v5.50/packs/Microchip/PIC16Fxxx_DFP/1.2.33/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 -std=c90 -gdwarf-3 -mstack=compiled:auto:auto -Wl,--memorysummary,dist/default/production/memoryfile.xml -o dist/default/production/Test.X.production.elf build/default/production/main.p1
Non line specific message::: advisory: (1492) using updated 32-bit floating-point libraries; improved accuracy might increase code size
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%)
make[2]: Leaving directory 'D:/YandexDisk/Electronics/Projects/886/Test.X'
make[1]: Leaving directory 'D:/YandexDisk/Electronics/Projects/886/Test.X'
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
Там все подробно расписано. Еще по битам конфигурации здесь:
https://microchipdeveloper.com/mplabx:v ... ation-bits
и в файлах 16f886.cfgmap и 16f886.cfgdata
Время сборки видно из лога.
Последний раз редактировалось phalanx Пт апр 15, 2022 10:37:36, всего редактировалось 7 раз.
Re: Программа на C++ для МК PIC16F1824
[uquote="НовыйДень",url="/forum/viewtopic.php?p=4214664#p4214664"]Но эти ПИКи, особенно старых серий, это такая тягомотная тряхомудия, которую впору на асме прогать, как мы раньше и делали. Менее 400 байт ОЗУ, разделенные на банки - это такая лажа. Не, ну конечно ногодрыг для зарядки сделать - в самый раз, даже на дисплей 1602 хватит.[/uquote]
Ну почему же. Давеча склепал кухонный таймер на PIC16F877 и LCD от тестера. Дабы чайники не горели.) С часами, температурами, днями недели, будильниками... И ничё. Потребление мизер, а места ещё куча осталось.
Ну почему же. Давеча склепал кухонный таймер на PIC16F877 и LCD от тестера. Дабы чайники не горели.) С часами, температурами, днями недели, будильниками... И ничё. Потребление мизер, а места ещё куча осталось.