单片机TM4C123学习(八):SPI接口D/A
2015-12-23 16:37
274 查看
1.头文件和变量定义(不是很清楚)
2.初始化
3.波形数据生成(matlab)
4.写一个字
5.调用示例
6.改变定时器频率
#include "driverlib/ssi.h" #include "driverlib/i2c.h" #include "driverlib/udma.h" #include "driverlib/fpu.h" #include "driverlib/rom.h" #include "inc/hw_ssi.h" #include "inc/hw_i2c.h"
2.初始化
// refer to teacher's demo, SSI module init SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1); GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_1,1<<1); SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI1); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD); GPIOPinConfigure(GPIO_PD0_SSI1CLK); GPIOPinConfigure(GPIO_PD3_SSI1TX); GPIOPinTypeSSI(GPIO_PORTD_BASE,GPIO_PIN_3|GPIO_PIN_0); SSIConfigSetExpClk(SSI1_BASE, SysCtlClockGet(), SSI_FRF_MOTO_MODE_1, SSI_MODE_MASTER, 10000000, 16); SSIEnable(SSI1_BASE);
3.波形数据生成(matlab)
clear all,clc i=0:12 y=4095/12*i; y=ceil(y); max(y) min(y) dec2hex(y)
4.写一个字
// write data void dac_writedata(uint16_t ui32Data) { GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_1,0<<1); SSIDataPut(SSI1_BASE, ui32Data); while(SSIBusy(SSI1_BASE)) ; GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_1,1<<1); }
5.调用示例
if (flag_wave==0) { //dac_writedata(sin_data[i]/voltage_div); dac_writedata(sin_data[i]/(3300/voltage)); }
6.改变定时器频率
TimerLoadSet(TIMER0_BASE, TIMER_A, SysCtlClockGet() / (freq*point) - 1); // Change the timer0 frequency
相关文章推荐
- 数学必修一部分英汉专有名词对照(人教版)
- 关于kali linux 安装后网络连不上问题
- Azure Internal Load Balance
- jQuery -- 判断属性是否存在
- hadoop下的Kmeans算法实现三
- Ajax跨域、Json跨域、Socket跨域和Canvas跨域等同源策略限制的解决方法
- dialog activity管理类
- smarty截取字符串与过滤HTML标签
- 深入理解Java Servlet与Web容器之间的关系
- codeigniter 入门项目
- android 设计模式笔记
- ❀自我唠嗑OC-省市区排序
- STM32系列单片机命名规则
- codeforces 557D. Vitaly and Cycle 二分图染色
- L脚本语言实现文件加解密
- Node.js开发者必须了解的4个JS要点
- 特大喜讯,View and Data API 现在支持中文界面了
- 源码篇——安卓启动流程
- WebKit爬虫
- 扁平化imageview