工具/软件:Code Composer Studio
您好,如果能解决以下问题,我将不胜感激:
我刚刚在我的PC#2 (Win 7)上加载并更新了CCS 7 (版本:7.1 .0.0.0016万),并尝试运行在此帖子中插入的程序,该程序正在我的另一台PC#1 (Win 7)上运行,运行CCS 6。
我目前无法访问PC#1,因为我目前处于远程状态。
我在PC#1上使用此代码的功能版本将main.c文件直接添加到新项目中。
当我在PC#2上构建新项目时,我收到以下两个错误:
错误#1.0234万-D:未解析的符号
2.错误#1.001万:链接时遇到错误
顺便提一下,"闪烁"在我的LaunchPad (TM4C123GXL)上加载和运行。
谢谢!
错误说明:
属性:
代码
API未突出显示。 可能我没有正确引用API源库,或者根本没有引用,或者我使用的编译器不正确,或者?
另外,我删除了API的参考ROM_,它在 运行CCS 6的另一台PC (Win 7)上运行。
*用于N通道MOSFET (IRF630)电源的光耦合器驱动器(4N25)。
*参见示意图:N通道MOSFET,带光耦合
器*此代码使用PWM模块1发电机0和发电机3
* PWM模块1发电机0:M1PWM0,GPIO引脚PD0。 PWMGenConfigure使用PWM_GEN_MODE_DOWN
在倒计时模式下,它将从一个值向下计数到零,
然后重置为预设值。
这将产生左对齐的PWM信号
(即
发电机产生的两个PWM信号的上升沿将同时出现)。
* PWM模块1发电机3:M1PWM6,GPIO引脚PF2。 PWMGenConfigure使用PWM_GEN_MODE_UP_DOWN
在向上/向下计数模式下,它将从零到预设值进行计数,向下计数到零,
然后重复该过程。 这将产生中心对齐的PWM信号
(即,
生成器产生的PWM信号的高/低周期的中间值将同时出现)。*/
#include <stdint.h>
#include <stdbool.h>
#include "inc/HW_memmap.h"
#include "inc/HW_types.h"
#include "glp_lib/lib/driverh"pin.rm/sec"
void )
{//
设置系统时钟(SYSCLK)和PWM时钟(PWMCLK)
SysctlClockSet( sysctl_SYSDIV_10 | sysctl_use_pll | sysctl_OSC主| sysctl_XTAL_16MHz );// SYSCLK设置为20 MHz (称为"刻度")
// TM4C123x_ROM用户指南第199/348页
// TM4C123GH6PM Reve Datasheet,Register 8:运行模式时钟配置(RCC),偏移0x060
// sysctl_OSC = OSCSRC (振荡器源),MOSC (主振荡器),第257 / 1409页
// sysctl_XTAL_16MHz = XTAL (晶体值),第256/1409页
// sysctl_SYSDIV_10 = SYSDIV (系统时钟频率),第254/1409页
// sysctl_use_PLL = USEPWMDIV (Enable PWM Clock Divisor),第255/1409页
//设置PWM时钟(PWMCLK)
SysCLLPWMClockSet( sysctl_PWMDIV_64);//通过将PWM MHz (tick) 20.0 除以64= PWM时钟312.5 KHz [PWM 31.25万 Hz](PWMCLK)来 设置时钟
// TM4C123x_ROM用户指南第217/348页
// TM4C123GH6PM Reve Datasheet,Register 8:运行模式时钟配置(RCC),偏移0x060
// sysctl_PWMDIV_64 = PWMDIV,第255/1409页
//启用PWM模块1,发生器0到GPIO端口D引脚0的输出,使发生器3到GPIO端口F引脚2的输出
SysctlPeripheralEnable( sysctl_Periph_PWM1 );//启用PWM外设PWM模块1
SysctlPeripheralEnable( sysctl_Periph_GPIOD);//启用GPIO:端口D
SysctlPeripheralEnable( sysctl_Periph_GPIOF );//启用GPIO:端口F
/*--- 将PWM模块1,发生器0,PWM 1配置为在GPIO GPIO端口D,引脚PD0 M1PWM0 */上输出定义的频率和脉冲占空比
GPIOPinTypePWM(GPIO_PORTD_BASE,GPIO_PIN_0);//配置端口D,引脚0,供PWM外设使用。
//当TM4C123G_LaunchPad是ROM_ API时,程序会加载,但不会在它上运行
//当TM4C123G_LaunchPad是2.1 3.156 驱动程序库API时,该程序将加载并运行于TM4C123G_LaunchPad上
GPIOPinConfigure( GPIO_PD0_M1PWM0 );//配置端口D,引脚0到PWM输出的备用功能
// TM4C123GH6PM微控制器数据表-SPMS376E,23.4 GPIO引脚和备用功能,p1351
PWMGenConfigure( PWM1_BASE,PWM_GEN_0,PWM_GEN_MODE_DOWN );//配置PWM模块1,发生器0。 在mode_down中,从PWM发生器的周期(负载)向下计数到零,
//然后重置为预设的PWM发生器周期(负载)值。
// TIVA C系列TM4C123x ROM用户指南,PWM,15.2。1.5 ROM_PWMGenConfigure,第157页。
// TM4C123GH6PM微控制器数据表-SPMS376E,20.3
2 PWM计时器,p1234和图20-3。 PWM倒计时模式,P1235
PWMGenPeriodSet( PWM1_BASE,PWM_GEN_05208 );//设置PWM发生器的0周期(负载)值。 这是方波的频率。
//周期(负载)值定义为发生器块上零脉冲信号之间的PWM时钟信号的数量。
// PWMCLK频率[ticks per second (Hz)]= 6.25万 ticks per second (每秒tick数)
// PWM周期=(1/f)=每刻度的0.0.0032万 秒数
//所需频率[f]= Hz的数量
//所需期间=(1/f)=每个期间的秒数
//每个所需周期的刻度=每个周期的秒数/每个刻度的秒数
// 60 Hz =5208刻度
//ROM_PWMDeadBandEnable (PWM1_BASE,PWM_GEN_01000,1000);//在PWM0输出信号上启用死区生成,以PWMGenPeriodSet tick的百分比表示
// PWMGenPeriodSet tick的百分比=
PWMPulseWidthSet( PWM1_BASE,PWM_OUT_0,( PWMGenPeriodGet(PFM1_BASE,PWM_GEN_0)/4);//使用PWMGenPeriodGet获得先前设置的期间,设置PWM发生器0脉冲宽度输出。
//设置占空比:在这种情况下,PWM发生器的周期除以10,以获得10 % 占空比。
PWMOutputState( PWM1_BASE,PWM_OUT_0_bit,true );//启用PWM模块1发生器0的输出
PWMGenEnable( PWM1_BASE,PWM_GEN_0);//为PWM模块1发生器0启用计时器/计数器
GPIOPadConfigSet (GPIO_PORTD_BASE,GPIO PIN_0,GPIO强度_8mA,GPIO PIN_TYPE_STD);//为8 MA输出启用GPIO端口D垫和引脚0
/*--- 将PWM模块1,发生器3,PWM 1配置为在GPIO端口F引脚PF2 M1PWM6上输出定义的频率和脉冲占空比------- */
GPIOPinTypePWM(GPIO_PORTF_BASE,GPIO PIN_2 );//配置端口F,引脚2以供PWM外设使用
//当TM4C123G_LaunchPad是ROM_ API时,程序会加载,但不会在它上运行
//当TM4C123G_LaunchPad是2.1 3.156 驱动程序库API时,该程序将加载并运行于TM4C123G_LaunchPad上
GPIOPinConfigure( GPIO_PF2_M1PWM6 );//配置端口F的交替功能,引脚0到PWM输出
// TM4C123GH6PM微控制器数据表-SPMS376E,23.4 GPIO引脚和备用功能,p1351
PWMGenConfigure( PWM1_BASE,PWM_GEN_3,PWM_GEN_MODE_UP_DOWN );//配置PWM模块1,发生器2。 在MODE_UP_DOWN中,从PWM发生器的周期(负载)向下计数到零,
/*在向上/向下计数模式中,它将从零向上计数到预设值,
倒计时至零,然后重复此过程。
这将产生中心对齐的PWM信号
(即PWM高/低期间的中间
生成器生成的信号将同时出现)。*/
// TIVA C系列TM4C123x ROM用户指南,PWM,15.2。1.5 ROM_PWMGenConfigure,第157页
// TM4C123GH6PM微控制器数据表-SPMS376E,20.3 .................2 PWM计时器,p1234和图20-4。 PWM向上/向下计数模式,P1235
PWMGenPeriodSet( PWM1_base, PWM_GEN_3, 5208);//设置PWM发生器的0周期(负载)值。 这是方波的频率。
//周期(负载)值定义为发生器块上零脉冲信号之间的PWM时钟信号的数量。
// PWMCLK频率[ticks per second (Hz)]= 6.25万 ticks per second (每秒tick数)
// PWM周期=(1/f)=每刻度的0.0.0032万 秒数
//所需频率[f]= Hz的数量
//所需期间=(1/f)=每个期间的秒数
//每个所需周期的刻度=每个周期的秒数/每个刻度的秒数
// 60 Hz =5208刻度
PWMDeadBandEnable (PWM1_BASE,PWM_GEN_320.02万);//在PWM0输出信号上启用死区生成,以PWMGenPeriodSet tick的百分比表示
// PWMGenPeriodSet tick的百分比=
PWMPulseWidthSet( PWM1_BASE,PWM_OUT_6,( PWMGenPeriodGet(PFM1_BASE,PWM_GEN_3)/4);//通过使用PWMGenPeriodGet获取先前设置的期间,设置PWM发生器0脉冲宽度输出(占空比)。
//在这种情况下,PWM发生器的周期除以10,以获得10 % 占空比。
//ROM_PWMOutputInvert (PWM1_BASE,PWM_OUT_0_bit,TRUE);//反转PWM模块1发生器0的输出,位1
//(由于PWM发生器的两个输出相互反转,因此不需要此函数)
PWMOutputState( PWM1_BASE,PWM_OUT_6_bit,TRUE );//启用PWM模块1,发生器2,PWM 4的输出
PWMGenEnable( PWM1_BASE,PWM_GEN_3);//启用PWM模块1发生器0的计时器/计数器
GPIOPadConfigSet (GPIO _PORTF_BASE,GPIO PIN_2,GPIO强度_8mA,GPIO PIN_TYPE_STD);//为8 MA输出启用GPIO端口F垫和引脚0
同时(1){
;}
}


