gpt4 book ai didi

c - 为什么这个简单的 PWM 在 xc8 中不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 03:30:30 26 4
gpt4 key购买 nike

我知道网上有很多例子,但是这段代码需要做什么才能起作用?

频率振荡器 = 4mhz

周期 = 0.25us

duty_cicle = 250

预分频 = 16

PR2 = 124

#include <xc.h>
#include <stdio.h>
#include <stdlib.h>
#include <pic16f88.h>

#pragma config FOSC = HS // Oscillator Selection bits (INTOSC oscillator: I/O function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)
#pragma config MCLRE = OFF // RA5/MCLR/VPP Pin Function Select bit (RA5/MCLR/VPP pin function is digital input, MCLR internally tied to VDD)
#pragma config BOREN = ON // Brown-out Detect Enable bit (BOD enabled)
#pragma config LVP = OFF // Low-Voltage Programming Enable bit (RB4/PGM pin has digital I/O function, HV on MCLR must be used for programming)
#pragma config CPD = OFF // Data EE Memory Code Protection bit (Data memory code protection off)
#pragma config CP = OFF // Flash Program Memory Code Protection bit (Code protection off)

void main ()
{
while (1)
{
CCP1CON = 0x2C; /*activate PWM mode*/
PR2 = 0x7C; /*124 (DECIMAL)*/
T2CON = 0X06; /*prescale 16 */
CCPR1L = 0X3E;

}
}

我想看看:

PWM 周期 = 2ms

占空比 = 1 毫秒

真诚的宁

最佳答案

先跑题:不要包含pic16f88.h,它包含在xc.h中。

稍微跑题了:如果您使用更现代的部件(例如 PIC16f1619),您可以使用 MPLAB 代码配置器为您生成 TMR2 和 CCP 代码。它的成本也会更低,并且拥有更多的闪存/内存。该设备在 curiosity board 上(20 美元)。

主题:您的第一站是 datasheet .

PWM 部分有 setup for PWM operation .

第一步:timer 2将 Fosc/4 作为输入,在您的情况下为 1mhz。目标频率为 500Hz。 1e6/500 = 2k。我建议使用 16 的预分频器和 125 的 pr 值。这将为您提供恰好 500Hz。

第二步:我们想要 50% 的占空比。 CCP1L floor(125/2) = 62。CCP1X:CCP1Y = 0.5 * 4 = 2。

第 3 步:清除 tris 位。

第四步和第五步:打开它

// Step 1
TMR2ON = 0;
TOUTPS = 0;
T2CKPS = 2;
PR2 = 250U;

// Step 2
CCP1L = 62U;
CCP1X = 1;
CCP1Y = 0;

// Step 3
TRISB3 = 0;

// Step 4
TMR2ON = 1;

// Step 5
CCP1M = 0xC;

希望对您有所帮助。

关于c - 为什么这个简单的 PWM 在 xc8 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37064443/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com