#include <msp430x16x.h>
#include "gyro.h"
unsigned char MST_Data = 0x00, SLV_Data = 0xFF;
unsigned char MST_Data_16bit = 0x00;
unsigned char Read_Data=0x0000;
// Stop Watchdog Timer (WDT)
void watchdog_stop ()
{
WDTCTL = WDTPW + WDTHOLD;
}
void set_pins()
{
P1DIR = 0x1;
P1OUT = 0x0;
// SPI 0
P3SEL = 0x1E;
P3DIR = 0x1B;
P3OUT |= 0x10;
// SPI 1
P5SEL = 0x1E;
P5DIR = 0x1B;
P5OUT |= 0x10;
}
void main ()
{
watchdog_stop ();
set_pins ();
spi_reset ();
_EINT(); // Enable interrupts
spi_send (0, 0); // Ready TXBUF0 w/ 1st character
LPM4; // Enter LPM4
}
#pragma vector=USART0RX_VECTOR
__interrupt void SPI0_rx (void)
{
// dataH and dataL represent the data read from Gyro.
// dataH is the High 8-bits.
// dataL is the Low 8-bits.
// Receive is always from MSB to LSB
static unsigned char HLcounter = 0;
char dataH = 0, dataL = 0;
if (HLcounter == 0)
{
dataH = spi_read (0);
HLcounter++;
}
else
{
dataL = spi_read (0);
HLcounter = 0;
}
if (HLcounter == 0)
{
// TODO: Write down the code to do something with your data
// only in this section. This is when the 16-bit data is ready.
Read_Data = dataH << 8 + dataL;
P1OUT ^= 0x01;
}
}
#pragma vector=USART0TX_VECTOR
__interrupt void SPI0_tx (void)
{
// Transmission is always from MSB to LSB
// TODO:
// Put something in MST_Data_16bit to send (i.e. register address),
// then send the data.
MST_Data_16bit = GYRO_REG_TEMP_OUT;
MST_Data_16bit << 8;
// Send the high 8 bits
spi_send (0, MST_Data_16bit >> 8);
// Send the low 8 bits
spi_send (0, MST_Data_16bit);
}
// Test purpose! (can be removed)
#pragma vector=USART1RX_VECTOR
__interrupt void SPI1_rx (void)
{
//P1OUT = 0x1;
}
// Test purpose! (can be removed)
#pragma vector=USART1TX_VECTOR
__interrupt void SPI1_tx (void)
{
//spi_send (0, MST_Data);
}
// Timer A0 interrupt service routine
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A(void)
{
//spi_send (0x0);
}
spi.zip_msp430f169_msp430f169 spi
版权申诉
50 浏览量
2022-09-22
19:09:11
上传
评论
收藏 2KB ZIP 举报
周楷雯
- 粉丝: 80
- 资源: 1万+
最新资源
- JAVA实现Modbus RTU或Modbus TCPIP案例.zip
- 基于YOLOv8的FPS TPS AI自动锁定源码+使用步骤说明.zip
- JAVA实现Modbus RTU或Modbus TCPIP案例.zip
- 基于yolov8+streamlit的火灾检测部署源码+模型.zip
- 测试aaaaaaabbbbb
- VID20240521070643.mp4
- Android系统原理与开发学习要点详解-培训课件.zip
- 部署yolov8的tensorrt模型支持检测分割姿态估计的C++源码+部署步骤.zip
- 以简单、易用、高性能为目标、开源的时序数据库,支持Linux及Windows, Time Series Database.zip
- python-leetcode面试题解之第198题打家劫舍-题解.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈