TMS280049C学习笔记1 GPIO 点LED灯

硬件

可编程控制律加速器(CLA),可以提高代码的效率。100M

四条 Σ-Δ 滤波器模块 (SDFM) 输入通道。

可配置逻辑块 (CLB)。

FLASH 256KB

GPIO pins 40

AIO inputs 21

软件

编程环境是使用CCS10.2

I/O pin configuration

1、选择需要的引脚,写入GPyMUX1/2寄存器(当改变GPyMUX1/2寄存器时,需要先置0),默认情况下所有引脚都为通用I/O

2、(可选)使能内部上拉电阻,操作寄存器GPyPUD,(默认情况上拉都是禁止的)。当没有外部信号驱动输入引脚时,上拉可以用来保持输入引脚处于已知状态。

3、在GPyCTRL寄存器中选择限定采样周期,在GPyQSEL1和GPyQSEL2寄存器中选择限定采样类型(默认情况为同步采样,周期等于PLLSYSCLK)

4、在GPyDIR寄存器中选择引脚的输入输出方向(默认为输入),选择为输出之前要写GPySET、GPyCLEAR或GPyDAT寄存器

5、选择低功率模式唤醒源,写入GPIOLPMSEL0和GPIOLPMSEL1寄存器适当位

6、选择外部中断源。首先,启用中断本身(通过XINTnCR寄存器配置),其次选择输入X-BAR信号源设置XINT1-5管脚,分别为4、5、6、13和14.

在主函数main.c中输入如下代码,并编译。下载运行后,LaunchPad的红色Led会闪烁,频率1Hz。

#include "F28x_Project.h"
#include "device.h"
#include "math.h"

#define DEVICE_GPIO_PIN_LED1        23U  // GPIO number for LD4
#define DEVICE_GPIO_PIN_LED2        34U  // GPIO number for LD5

void main(void)
{
    // 初始化时钟和外设 Initialize device clock and peripherals
    Device_init();
    // InitSysCtrl();  //本工程不能使用寄存器的InitSysCtrl();函数初始化。

    /*//库函数版配置
    // 初始化GPIO并设置为推挽输出 Initialize GPIO and configure the GPIO pin as a push-pull output
    Device_initGPIO();
    GPIO_setPadConfig(DEVICE_GPIO_PIN_LED1, GPIO_PIN_TYPE_STD);  // Push-pull output or floating input
    GPIO_setDirectionMode(DEVICE_GPIO_PIN_LED1, GPIO_DIR_MODE_OUT);
    */
    InitGpio();  //寄存器指令配置
    GPIO_SetupPinMux(DEVICE_GPIO_PIN_LED1, GPIO_MUX_CPU1, 0);
    GPIO_SetupPinOptions(DEVICE_GPIO_PIN_LED1, GPIO_OUTPUT, GPIO_PUSHPULL);


    // 初始化PIE并清空PIE寄存器,关闭CPU中断
    // Initialize PIE and clear PIE registers. Disables CPU interrupts.
    Interrupt_initModule();

    // 初始化PIE向量表
    // Initialize the PIE vector table with pointers to the shell Interrupt
    // Service Routines (ISR).
    Interrupt_initVectorTable();

    // Enable Global Interrupt (INTM) and realtime interrupt (DBGM)
    EINT;
    ERTM;

    float a=cos((float)3.1415926/4);  // FPU32
    float b=__sin((float)(3.14/4));   // TMU

    for(;;)
    {
        // Turn on LED
        // 硬件电路设计是GPIO输出低电平时LED亮
        GPIO_writePin(DEVICE_GPIO_PIN_LED1, 0);

        // 延迟0.5s Delay for a bit.
        DEVICE_DELAY_US(500000);

        // Turn off LED
        GPIO_writePin(DEVICE_GPIO_PIN_LED1, 1);

        // Delay for a bit.
        DEVICE_DELAY_US(500000);
    }
}
 

你可能感兴趣的:(DSP,dsp)