📄 iar-
字号:
/****************************************Copyright (c)****************************************************
** Guangzhou ZHIYUAN electronics Co.,LTD.
**
** http://www.embedtools.com
**
**--------------File Info---------------------------------------------------------------------------------
** File name: spi_t_r_reg.c
** Latest modified Date: 2007.09.16
** Latest Version: v1.0
** Descriptions: 通过 SSI 接口循环向外输出 0~F 的字模,74HC595 接收到 SSI 信号以后
** 在八段数码管上显示相应的字符。
**
**--------------------------------------------------------------------------------------------------------
** Created by: Zhao shimin
** Created date: 2007.09.16
** Version: v1.0
** Descriptions: The original version
**
**--------------------------------------------------------------------------------------------------------
** Modified by: Kang qinhua
** Modified date: 2008.01.13
** Version: v1.1
** Descriptions:
**
*********************************************************************************************************/
#define HWREG(x) (*((volatile unsigned long *)(x)))
#define SYSCTL_PERIPH_SSI 0x10000010 /* SSI 在系统控制器中的地址 */
#define SYSCTL_PERIPH_GPIOA 0x20000001 /* GPIO A 在系统控制器中的地址 */
#define SYSCTL_PERIPH_GPIOB 0x20000002
#define SYSCTL_RCGC1 0x400fe104 /* 运行模式时钟门控寄存器 1 */
#define SYSCTL_RCGC2 0x400fe108 /* 运行模式时钟门控寄存器 2 */
#define SYSCTL_RCC 0x400fe060 /* 运行-模式时钟配置寄存器 */
#define SYSCTL_PLLCFG 0x400fe064 /* XTAL-PLL转换寄存器 */
#define SYSCTL_RCC_XTAL_MASK 0x000003C0 /* Crystal attached to main osc*/
#define SYSCTL_RCC_OSCSRC_MASK 0x00000030 /* 振荡器相关的位 */
#define SYSCTL_RCC_OSCSRC_MAIN 0x00000000 /* 使用主振荡器 */
#define SYSCTL_RCC_OSCSRC_INT 0x00000010 /* 使用内部振荡器 */
#define SYSCTL_RCC_OSCSRC_INT4 0x00000020 /* 内部振荡器 / 4 */
#define SYSCTL_RCC_XTAL_SHIFT 6 /* 移位到振荡器的相关位 */
#define SYSCTL_RCC_XTAL_3_57MHZ 0x00000100 /* 使用3.579545MHz 晶振 */
#define SYSCTL_RCC_BYPASS 0x00000800 /* PLL旁路 */
#define SYSCTL_RCC_USE_SYSDIV 0x00400000 /* 使用系统时钟除数 */
#define SYSCTL_RCC_SYSDIV_MASK 0x07800000 /* 系统时钟除数 */
#define SYSCTL_RCC_SYSDIV_SHIFT 23 /* 移位到系统时钟除数的相关位 */
#define SYSCTL_PLLCFG_OD_MASK 0x0000C000 /* 输出除数 */
#define SYSCTL_PLLCFG_OD_1 0x00000000 /* OD值 1 */
#define SYSCTL_PLLCFG_OD_2 0x00004000 /* 2 */
#define SYSCTL_PLLCFG_OD_4 0x00008000 /* 4 */
#define SYSCTL_PLLCFG_F_MASK 0x00003FE0 /* F输入值 */
#define SYSCTL_PLLCFG_R_MASK 0x0000001F /* R输入值 */
#define SYSCTL_PLLCFG_F_SHIFT 5 /* 移位到F的相关位 */
#define SYSCTL_PLLCFG_R_SHIFT 0 /* 移位到R的相关位 */
#define SSI_BASE 0x40008000 /* SSI 基地址 */
#define SSI_O_CR0 0x00000000 /* SSI 控制寄存器0 */
#define SSI_O_CR1 0x00000004 /* SSI 控制寄存器1 */
#define SSI_O_DR 0x00000008 /* SSI 数据寄存器 */
#define SSI_O_SR 0x0000000C /* SSI 状态寄存器 */
#define SSI_O_CPSR 0x00000010 /* SSI 时钟分频寄存器 */
#define SSI_MODE_MASTER 0x00000000 /* SSI 主模式 */
#define SSI_FRF_MOTO_MODE_0 0x00000000 /* Moto 帧格式,极性0,相位0 */
#define SSI_CR0_FRF_MASK 0x00000030 /* 帧格式屏蔽 */
#define SSI_CR1_SSE 0x00000002 /* 同步端口使能 */
#define SSI_SR_TNF 0x00000002 /* TX FIFO未满 */
#define SSI_SR_RNE 0x00000004 /* RX FIFO 未满 */
#define GPIO_PORTA_BASE 0x40004000 /* GPIO A 端口基地址 */
#define GPIO_PORTB_BASE 0x40005000 /* GPIO B 端口基地址 */
#define GPIO_PIN_0 0x00000001
#define GPIO_PIN_1 0x00000002
#define GPIO_PIN_2 0x00000004 /* GPIO 引脚 2 */
#define GPIO_PIN_3 0x00000008 /* GPIO 引脚 3 */
#define GPIO_PIN_4 0x00000010 /* GPIO 引脚 4 */
#define GPIO_PIN_5 0x00000020 /* GPIO 引脚 5 */
#define GPIO_O_AFSEL 0x00000420 /* 模式控制选择寄存器 */
#define GPIO_O_ODR 0x0000050C /* 开漏选择寄存器 */
#define GPIO_O_DEN 0x0000051C /* 数字输入使能寄存器 */
#define GPIO_O_PUR 0x00000510 /* 上拉选择寄存器 */
#define GPIO_O_DR2R 0x00000500 /* 2mA驱动选择寄存器 */
#define GPIO_O_DIR 0x00000400
#define GPIO_O_DATA 0x00000000
#define BitRate 115200 /* 设定波特率 */
#define DataWidth 8 /* 设定数据宽度 */
/* 此表为7段数码管显示0~F的字模 */
unsigned char DISP_TAB[16] = {
0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,
0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E};
const unsigned long g_pulXtals[] =
{
3579545,
3686400,
4000000,
4096000,
4915200,
5000000,
5120000,
6000000,
6144000,
7372800,
8000000,
8192000
};
/*********************************************************************************************************
** Function name: delay
**
** Descriptions: 延时函数,输入参数越大,延时时间越长
**
** input parameters: uld 延时时间值
** output parameters: NONE
**
** Returned value: NONE
**
** Created by: Zhao shimin
** Created Date: 2007/09/16
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void delay (unsigned long uld)
{
for(; uld; uld--);
}
/*********************************************************************************************************
** Function name: SysCtlClockGet
**
** Descriptions: 获取系统时钟
**
** input parameters: NONE
** output parameters: NONE
**
** Returned value: ulclk 时钟速率
**
** Created by: Zhao shimin
** Created Date: 2007/09/16
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
unsigned long SysCtlClockGet (void)
{
unsigned long ulRCC, ulPLL, ulClk;
ulRCC = HWREG(SYSCTL_RCC); /* 读RCC */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -