【6678专题】-点亮LED灯(寄存器方式)

news2024/9/21 9:52:48

本章需要参考的资料为
General Purpose Input Output (GPIO) User Guide.pdf》,具体在创龙资料文件夹目录下D:\JYTL\12DSP_FPGA\08_文档\创龙\TL6678ZH-EVM_V1.5\TL6678ZH-EVM_V1.5\6-开发参考资料\数据手册\核心板元器件\DSP\Technical Reference Manual
Multicore Fixed and Floating-Point Digital Signal Processor》,即TMS320C6678的数据手册

6678的GPIO寄存器操作

  • GPIO Registers
  • 参考代码
  • 工程文件

GPIO Registers

在这里插入图片描述
上表中给出的是偏移地址,那么是在哪个地址上偏移的呢?这个需要查找上面的第二个手册:
在这里插入图片描述

首先看下关于GPIO的寄存器,如上表所示
在这里插入图片描述
上述内容同样来源于手册,简单分析可知:
DIR :方向控制寄存器 0表示设置为输出;1表示设置为输入
OUT_DATA:输出数据寄存器
SET_DATA:将数据对应bit直接置1
CLR_DATA:将数据对应bit设置为0
IN_DATA:输入数据寄存器
我们分析一下数据手册中的说明,针对OUT_DATASET_DATACLR_DATA;这几个寄存器都是针对输出而言,如果方向设置为输入,那么操作这几个寄存器是没有用的。
SET_DATACLR_DATA这两个寄存器,只支持往里面写1;如果写0则无效;

参考代码

/*
 * main.c
 */
#include <stdio.h>

#include <c6x.h>
/* CSL Header file */
#include <ti/csl/cslr_device.h>
#include <ti/csl/csl_pscAux.h>

/* Platform utilities include */
#include "system/platform.h"

/* Driver utilities include */
#include "driver/c66x_uart.h"


/*user define*/
#define GPIO_DIR        0x02320010
#define GPIO_OUT_DATA   0x02320014
#define GPIO_SET_DATA   0x02320018
#define GPIO_CLR_DATA   0x0232001C
#define GPIO_IN_DATA    0x02320020
#define GPIO_NUM        4
/*operation on pointor*/
#define ACCESS(addr)   *((unsigned int*)addr)

/**
 * @brief enable psc module
 *
 * @param void
 *
 * @return NULL
 */
void psc_init()
{
    /* Set psc as Always on state */
    CSL_PSC_enablePowerDomain(CSL_PSC_PD_ALWAYSON);

    /* Start state change */
    CSL_PSC_startStateTransition(CSL_PSC_PD_ALWAYSON);

    /* Wait until the status change is completed */
    while(!CSL_PSC_isStateTransitionDone(CSL_PSC_PD_ALWAYSON));
}

void gpio_init()
{
    /*set direction output*/
    ACCESS(GPIO_DIR) &= ~(1<<4);

    /*set output level*/
    ACCESS(GPIO_SET_DATA) |= (1<<4);
}


int main(void) {

    int i = 0;
    uint32_t main_pll_freq;
//    uint8_t buf = 0;
    char tips_strings[] = {"\r\ntl-uart-echo Application\r\n"};

    /* Enable the PSC */
    psc_init();

    /* UART initialization */
    uart_init(CSL_UART_REGS);

    /*GPIO initialization*/
    gpio_init();

    /* Get the cpu freq */
    main_pll_freq = platform_get_main_pll_freq();

    /* Set the default baud rate to 115200 */
    /*
     * CPU frequency = main pll out
     * uart input clock = main pll out / 6
     */
    uart_set_baudrate(CSL_UART_REGS, main_pll_freq/6, 115200);

    uart_printf("%s", (char *)tips_strings);

    int coreID = DNUM;
    printf("hello world from core %d\n",coreID);
    while(1)
    {

        while(i++ < 3);
        ACCESS(GPIO_SET_DATA) |= (1<<4);
        i = 0;
        while(i++ < 3);
        ACCESS(GPIO_CLR_DATA) |= (1<<4);
        i = 0;
    }


    return 0;
}

工程文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2085145.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CentOS 安装 NVIDIA 相关软件包时出现依赖问题

CentOS 安装 NVIDIA 相关软件包时出现依赖问题 1 CentOS 安装 NVIDIA 相关软件包时报错如下2 解决方法 1 CentOS 安装 NVIDIA 相关软件包时报错如下 Error: Package: 3:kmod-nvidia-latest-dkms-550.90.07-1.el7.x86_64 (cuda-rhel7-x86_64)Requires: dkms Error: Package: 3:…

嵌入式中详解STM32启动文件

本文对STM32启动文件startup_stm32f10x_hd.s的代码进行讲解,此文件的代码在任何一个STM32F10x工程中都可以找到。 启动文件使用的ARM汇编指令汇总 Stack——栈 Stack_Size EQU 0x00000400 AREA STACK, NOINIT, READWRITE, ALIGN=Stack_Mem SPACE Stack_Size__initial_sp 开辟…

EEG揭秘:视觉线索如何操控我们的运动表现

摘要 在脑电图(EEG)或皮层脑电图(ECoG)实验中&#xff0c;视觉线索常用于时间同步&#xff0c;但可能会无意中诱发神经活动和认知加工&#xff0c;从而使任务解码变得更具挑战性。为了解决这一问题&#xff0c;本研究引入了四种新的视觉线索(淡出(Fade)、旋转(Rotation)、参考…

使用插件i18n实现国际化多语言

1、安装 npm install vue-i18nnext --save 或者 yarn add vue-i18nnext --save 2、配置 新建目录及文件夹 - src - locales - lang - zh.js // 中文&#xff0c; - en.js // 英语&#xff0c; - ar.js // 法语&#xff0c; - jp.js // 日语&#xff0c; - fr…

上万人苦心研究数年的数据,备份怎么做才保险?-Infortrend

业界领先的应用研究机构&#xff0c;拥有上万名员工。需要一套存储设备&#xff0c;能够长期保存大量备份数据。他们从事的研究项目周期&#xff0c;往往持续数月甚至数年&#xff0c;涉及大量的数据收集和分析。为了确保研究的连续性&#xff0c;并且保护关键数据&#xff0c;…

效率提升关键

在当今快节奏的工作环境中&#xff0c;效率软件成为了提升个人和团队生产力的重要工具。这些软件可以帮助人们更好地管理时间、优化工作流程以及增强团队协作。具体分析如下&#xff1a; 1 亿可达 ◦ 简介&#xff1a;亿可达作为一款自动化工具&#xff0c;亿可达被誉为国…

为什么要学习 CCRC-PIPP

背景&#xff1a; 在数字化时代背景下&#xff0c;数据已成为重要的生产要素和国家战略资源&#xff0c;个人信息的保护尤为关键。 保障公民的个人信息权益&#xff0c;促进其依法合理有效利用&#xff0c;是政府和企业推动数字经济健康发展的首要任务。 中国网络安全审查技…

TypeScript入门简介

TypeScript&#xff08;TS&#xff09;是JavaScript的超集&#xff0c;其可以编译出纯净、 简洁的JavaScript代码&#xff0c;并且可以运行在任何浏览器上、Node.js环境中和任何支持ECMAScript 3&#xff08;或更高版本&#xff09;的JavaScript引擎中。TypeScript提供最新的和…

【如何在MacOS升级ruby版本】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

如何在手机上设置国内代理IP地址:详细指南

在某些情况下&#xff0c;我们可能需要在手机上设置国内代理IP地址&#xff0c;以便访问特定的网络服务或提高网络连接的稳定性。本文将详细介绍如何在Android和iOS设备上设置代理IP地址。 在Android设备上设置代理IP地址 在Android设备上设置代理IP地址非常简单&#xff0c;只…

AD7046 GD32 SPI驱动设计

硬件设计 AD7046简介&#xff1a;ADS7046 12 位&#xff0c; 3 MSPS&#xff0c; 单端输入&#xff0c; 小型低功耗 SAR ADC。ADS7046 是一款 12 位 3 MSPS SAR ADC&#xff0c; 支持0V到 AVDD 范围内的单端输入&#xff0c; AVDD 的范围为2.35V至 3.6V。内部失调电压校准功能…

深度解读SGM41511电源管理芯片I2C通讯协议REG05寄存器解释

REG05 是 SGM41511 的第六个寄存器&#xff0c;地址为 0x05。它是一个可读写的寄存器&#xff0c;上电复位值&#xff08;PORV&#xff09;为 10011111。这个寄存器控制多个重要的充电安全和管理功能&#xff1a; EN_TERM (D[7])&#xff1a; 控制充电终止功能 0 禁用 1 …

视频结构化从入门到精通——认识视频结构化

认识视频结构化 1. 视频结构化与非结构化 1. 非结构化数据 非结构化数据指的是未经处理、以原始形式存在的数据。这类数据是直接采集、记录的&#xff0c;包含了音频、视频等多维信息&#xff0c;且没有任何标签、注释或分类来表示其中的内容。非结构化数据需要进一步处理和…

scrapy--伪分布式redis操作

免责声明:本文仅做分享... 目录 scrapy分布式爬虫 伪分布式 redis 快速学习使用 字 符 串 类 型 列 表 类 型 hash 类型 set 类型 zset 类型 小结: scrapy-redis 安装第三方库: settings.py配置: spider文件修改: redis数据库添加 键 值 启动 scrapy总结 scrap…

IS-IS路由配置--路由聚合

目录 不熟悉和理解IS-IS动态协议的可以回顾IS-IS详解&#xff0c;IS-IS相关的实验都不再做过多的解释 一. 实验拓扑 二. 实验配置 不熟悉和理解IS-IS动态协议的可以回顾IS-IS详解&#xff0c;IS-IS相关的实验都不再做过多的解释 IS-IS路由原理详解https://blog.csdn.net/23…

js Object.keys--filter 遍历对象中的数组,排查为空字段

Object.keys(filter).forEach(function(key) { if(key filters){ filter[key] filter[key].filter((item) > item.tagName ! "") } });

CTF—杂项学习

1 文件操作隐写 1.1 文件类型识别 1.1.1 File命令 当文件没有后缀名或有后缀名而无法打开时&#xff0c;根据识别出的文件类型来修改后缀名即可正常打开文件&#xff0c;file是Linux下的文件识别命令。 file 文件名 使用场景&#xff1a;不知道后缀名&#xff0c;无法打开文件…

低代码技术在业务流程自动化中的应用与挑战

在数字化转型的浪潮中&#xff0c;低代码平台和业务流程自动化&#xff08;BPA&#xff09;成为了企业提升效率和灵活性的关键工具。今天&#xff0c;我们将探讨低代码技术如何推动BPA的实施&#xff0c;及其带来的挑战和解决方案。 低代码技术概述 低代码平台是现代软件开发的…

HR告诉你:PMP证书到底是职场神话还是锦上添花?真相大解析!

HR在评价PMP证书时&#xff0c;需要根据招聘要求来考量。目前大多数项目管理岗位都要求应聘者“持有PMP等相关证书优先考虑”&#xff0c;简而言之&#xff1a;PMP证书就像是敲门砖。 对于大多数人而言&#xff0c;拥有PMP证书意味着有机会获得面试机会。毕竟在项目管理领域&a…

ASO优化之如何准确定位目标用户

如今应用商店中APP层出不穷&#xff0c;市场那么大&#xff0c;用户的需求也是各种各样&#xff0c;那么怎么才能用ASO优化来准确的定位目标用户呢&#xff0c;以下是一些关键策略和方法&#xff0c;用于实现这一目标&#xff1a; 1. 深入市场与用户研究 市场趋势分析&#x…