dsp28335 pwm实现流水灯,只要.c文件,不需要.h文件,用定时器延时

时间: 2023-12-06 13:02:44 浏览: 32
以下是基于DSP28335的PWM实现流水灯的.c文件代码,不需要使用.h文件,使用定时器延时: ```c #include "DSP2833x_Device.h" // DSP2833x Headerfile Include File #include "DSP2833x_Examples.h" // DSP2833x Examples Include File // Function Prototypes interrupt void cpu_timer0_isr(void); // Global Variables Uint16 pwm_period = 375; // PWM周期 Uint16 pwm_duty = 187; // PWM占空比,即50% Uint16 pwm_counter = 0; // PWM计数器,用于计算PWM占空比 Uint16 led_counter = 0; // LED计数器,用于控制流水灯 void main(void) { // Initialize System Control: InitSysCtrl(); // Initialize GPIO: InitGpio(); // Initialize PIE: InitPieCtrl(); // Disable CPU interrupts: DINT; // Initialize the PIE vector table: InitPieVectTable(); // Setup CPU Timer0: ConfigCpuTimer(&CpuTimer0, 150, 1000000); // Set up GPIO for PWM output: EALLOW; GpioCtrlRegs.GPAPUD.bit.GPIO0 = 1; // Disable pull-up on GPIO0 (PWM1) GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 1; // Configure GPIO0 as PWM1 output GpioCtrlRegs.GPADIR.bit.GPIO0 = 1; // Set GPIO0 as output EDIS; // Enable CPU interrupts: IER |= M_INT1; // Enable TINT0 in the PIE: Group 1 interrupt 7 PieCtrlRegs.PIEIER1.bit.INTx7 = 1; // Start CPU Timer0: StartCpuTimer0(); // Loop forever: while(1) { // Do nothing } } // CPU Timer0 ISR interrupt void cpu_timer0_isr(void) { // Acknowledge the interrupt PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Increment PWM counter pwm_counter++; // Check if PWM counter is greater than PWM duty if(pwm_counter > pwm_duty) { // Set GPIO0 low GpioDataRegs.GPACLEAR.bit.GPIO0 = 1; } else { // Set GPIO0 high GpioDataRegs.GPASET.bit.GPIO0 = 1; } // Check if PWM counter is equal to or greater than PWM period if(pwm_counter >= pwm_period) { // Reset PWM counter pwm_counter = 0; } // Increment LED counter led_counter++; // Check if LED counter is greater than or equal to 500,000 if(led_counter >= 500000) { // Reset LED counter led_counter = 0; // Shift LED pattern to the left pwm_duty = pwm_duty << 1; // Check if LED pattern has shifted beyond 100% if(pwm_duty >= pwm_period) { // Reset LED pattern to 50% pwm_duty = 187; } } } ``` 以上代码将CPU Timer0配置为1 MHz的计时器,并使用定时器中断来实现PWM输出和流水灯效果。其中,使用了两个计数器pwm_counter和led_counter来控制PWM输出和流水灯效果。在每次CPU Timer0中断时,增加pwm_counter和led_counter的值,然后根据pwm_counter的值来控制PWM输出,根据led_counter的值来控制LED流水灯效果。最后将pwm_duty的值左移一位来实现LED流水灯效果,当pwm_duty的值超过PWM周期时,将pwm_duty的值重置为50%。

相关推荐

最新推荐

recommend-type

DSP28335的McBsp配置为SPI接口的DMA的收发配置程序.docx

DSP28335的McBsp配置为SPI接口的DMA的收发配置程序,程序中完成了MCBSP配置为SPI工作模式的方式,并通过DMA完成数据收发操作
recommend-type

DSP实验报告—实验6 DSP的定时器、外中断实验

1.通过实验熟悉F28335A的定时器; 2.掌握F28335A定时器的控制方法; 3.掌握F28335A的中断结构和对中断的处理流程; 4.学会C语言中断程序设计,以及运用中断程序控制程序流程。
recommend-type

dsp6713中断设置完整说明教程.doc

关于DSP的C6000系列,特别是C6713型号,中断设置的过程,和程序实例,具有很高的参考价值。 包含程序例子,可以直接调试
recommend-type

DSP编程技巧之:详解cmd文件

cmd文件是编译完成之后链接各个目标文件时,用来指示各个数据、符号等是如何划分到各个段,以及每个段所使用的存储空间的。许多筒子对cmd文件有畏难情绪,不容易理解各个段的含义,特别是在程序编译没有问题。
recommend-type

基于DSP的PWM整流技术研究

PWM整流器已对传统的相控及二极管整流器进行了全面的改进。TMS320LF2407具有快速的数据处理能力和丰富的硬件资源,作为控制芯片可以提高系统的实时响应能力和控制精度,已经被广泛应用于电气自动化控制的各个领域。
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

list根据id查询pid 然后依次获取到所有的子节点数据

可以使用递归的方式来实现根据id查询pid并获取所有子节点数据。具体实现可以参考以下代码: ``` def get_children_nodes(nodes, parent_id): children = [] for node in nodes: if node['pid'] == parent_id: node['children'] = get_children_nodes(nodes, node['id']) children.append(node) return children # 测试数
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。