这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 企业专区 » TI » 课程1-2-3集合

共8条 1/1 1 跳转至

课程1-2-3集合

菜鸟
2024-05-21 00:26:51     打赏

1. 任务1 点亮RGB


1.1. 任务说明


RGB是一种特殊的LED,它由红色、绿色和蓝色三种LED组成,通过控制三种LED的亮度可以混合出各种颜色。本任务通过单独显示R G B的颜色,来实现循环显示。


1.2. 硬件原理

原理图如下

通过控制PA13 PA26 PA27引脚为高电平,来点亮LED。

需要注意的是,要把J3 J12 和 J13的跳线帽连接上,才能控制到LED的引脚。


1.3. 软件实现

新建项目

如果安装了MSP M0的SDK,可以通过CCS的导入项目来导入示例程序,以便快速开发

image (2).png

配置GPIO

通过syscfg,可以方便地配置GPIO:

配置PORT和pin

image (3).png

代码如下:

int main(void)
{
    SYSCFG_DL_init();

    while (1) {
        DL_GPIO_setPins(LED_PORT, LED_PIN_R_PIN);
        DL_GPIO_clearPins(LED_PORT, LED_PIN_G_PIN);
        DL_GPIO_clearPins(LED_PORT, LED_PIN_B_PIN);
        delay_cycles(32000000);
        DL_GPIO_setPins(LED_PORT, LED_PIN_G_PIN);
        DL_GPIO_clearPins(LED_PORT, LED_PIN_R_PIN);
        DL_GPIO_clearPins(LED_PORT, LED_PIN_B_PIN);
        delay_cycles(32000000);
        DL_GPIO_setPins(LED_PORT, LED_PIN_B_PIN);
        DL_GPIO_clearPins(LED_PORT, LED_PIN_R_PIN);
        DL_GPIO_clearPins(LED_PORT, LED_PIN_G_PIN);
        delay_cycles(32000000);
    }
}

1.4. 演示效果

rgb.gif




关键词: mspm0     l1306    

菜鸟
2024-05-31 17:19:45   被打赏 100 分(兑奖)     打赏
2楼

2. 任务2 数码管

2.1. 任务说明

通过定时器来实现1s的计时,将数码管从10递减到0。

2.2. 硬件原理

通过74HC595来驱动数码管:

image (1).png

74HC595是一种常用的串行输入并行输出(Serial-In, Parallel-Out)移位寄存器芯片,属于74系列逻辑芯片的一员。它具有多种应用,常被用于扩展微控制器的输出端口,以实现更多的并行输出。

74HC595芯片内部包含一个8位移位寄存器和一个8位存储寄存器。通过对移位寄存器的串行输入,可以将数据逐位地输入到芯片中。然后,通过控制时钟信号,将输入的数据从移位寄存器移入存储寄存器中,最终并行地输出到芯片的8个输出引脚上。

74HC595芯片还可以通过级联连接,多个74HC595芯片可以被串联在一起,形成一个长的移位寄存器链。这样,第一个芯片的串行输出(Q7引脚)连接到下一个芯片的串行输入(DS引脚),以此类推。每当数据位移入第一个芯片的移位寄存器后,时钟信号的触发会使数据从第一个芯片的移位寄存器转移到第一个芯片的存储寄存器,并且也会传递到第二个芯片的移位寄存器。这样就实现了多个芯片之间的数据级联传输。


硬件连接如下:

image (2).png

如果需要用图中的引脚,这里需要把给RGB的跳线帽拔掉,通过led这张图,

image (3).png

确定连接如下:

sclk -> j12

rclk -> j3

dio -> j13

image (4).png


定时器


定时器配置流程

image (5).png


时钟初值计算(可以通过syscfg很方便地配置)

可以向下或向上计时

image (6).png

2.3. 软件实现

将数码管的引脚配置到GPIO:

image (7).png

定时器配置:配置为1s的中断

有三个时钟源可供选择,分别是  

  • busclk 系统时钟 32M

  • MFCLK 固定时钟频率 4M

  • LFCLK 低频时钟 32k

image (8).png

代码中需要开启定时器中断

NVIC_EnableIRQ(TIMER_0_INST_INT_IRQN);


实现定时器中断函数

int8_t timerCnt = 10;

// 定时器中断
void TIMER_0_INST_IRQHandler(){
    switch(DL_TimerG_getPendingInterrupt(TIMER_0_INST)){
        case DL_TIMER_IIDX_ZERO:

            timerCnt--;
            if(timerCnt<0)
               timerCnt = 10;
            break;
    }
}

其他代码略

2.4. 演示效果

10.gif



菜鸟
2024-05-31 17:12:42     打赏
3楼

3. 任务3 蜂鸣器报警

3.1. 任务说明

为了实现温度报警器,我们需要连接一个温度传感器和蜂鸣器,温度传感器可以是模拟传感器或数字传感器,通过adc来采集温度。一旦温度超过设定的阈值,就触发蜂鸣器发出声音。

3.2. 硬件原理

通过 tmp6131dect 热敏电阻来实现温度采集,使用adc采集后,转换为相应的电阻值,再进行计算得到温度。

image (1).png

3.3. 软件实现

配置adc和定时器,这里需要有两个中断,adc用来采集温度值,定时器用来在固定时间更新温度值到数码管。

adc需要注意,除了开启adc中断还要开启转换

 // 开启adc中断
    NVIC_EnableIRQ(ADC12_0_INST_INT_IRQN);
    // 开始转换
    DL_ADC12_startConversion(ADC12_0_INST);


温度计算

在温度计算的时候,教程使用了4次函数拟合,看这曲线也挺像直线,我这里使用一次函数

image (2).png

y = 0.016392075 x - 138.2

用两组数(9590,19   9651,20)来求的,代入其他数值(x=9897,y=24.03)误差不大。


计算电阻

image (3).png

之后将电阻值代入x即可求温度。

参考代码:

image (4).png


温度相关的代码:

uint16_t conv_temp(){

    float voltage = 3.3;
    uint16_t registor = 10000; // 上面电阻值
    uint16_t adcRange = 4096; // 12位
    uint16_t adcValue = DL_ADC12_getMemResult(ADC12_0_INST, DL_ADC12_MEM_IDX_0);

    float vTemp = voltage*adcValue/adcRange; // 电压值
    float THRM_r = vTemp/((voltage-vTemp)/registor); // 电阻值
    float THRM_temp = 0.016392075 * THRM_r - 138.2; // 电阻和温度的一次函数
    return THRM_temp * 100; // 扩大100,转为u16
}

主函数:只有在adc中断触发并且计时器(500ms内)才会采集温度值。

报警阈值设为35度,超过则报警

int main(void)
{
    uint16_t tmpVal=0;
    SYSCFG_DL_init();

    // 开启adc中断
    NVIC_EnableIRQ(ADC12_0_INST_INT_IRQN);
    NVIC_EnableIRQ(TIMER_0_INST_INT_IRQN );


    // 开始转换
    DL_ADC12_startConversion(ADC12_0_INST);
    while (1) {

        if(adcFlag && timerFlag==1){
            adcFlag = 0;
            timerFlag = 0;
            tmpVal = conv_temp();
            if(tmpVal>3500)
                beep_on();
            else
                beep_off();
        }
        disp_data(tmpVal);
    }
}


3.4. 演示效果

t (1).gif




菜鸟
2024-05-21 01:16:12     打赏
4楼

视频:录制的时候,话筒没放到跟前,收音很差。

实验1.rar

实验2.rar

实验3.rar


专家
2024-05-21 08:14:51     打赏
5楼

学习一下


菜鸟
2024-05-21 14:18:15     打赏
6楼

学习一下


工程师
2024-05-27 08:47:21     打赏
7楼

谢谢分享。学习了。


助工
2024-05-27 09:27:35     打赏
8楼

图片都看不到


共8条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]