-
谢谢。解决了
-
同相位确实棘手啊,幅度频率是可以做到!
-
这个事I/O模拟SPI的。不是用单片机的串口
-
可以的。看芯片手册的SPI时序图编程序。这个是TLC5615你参考下吧。
#include
/*
函数名称:TLC5615,DA转换串行数据输出
函数管教;CS--P1.0,CLK--P1.1,DATA--P1.2
*/
void main( void )
{
WDTCTL = WDTPW + WDTHOLD;
unsigned char i ;
unsigned int start=1023,data; //定义start是本应传递进来的数值(0-1023)
data=1023&start; //遇1023相与,使0-1023的数都在内部为16位2进制,移动才不会错位
P1DIR=BIT0+BIT1+BIT2; //初始化时间,使能,数据三个管脚
data
-
不错!
-
这是一个思路。但是变过去的更多是硬件实现,不过我想要软件实现变换。你这个思路要是逆过程的话就要改变积分电路了,我想要软件操作识别出波形然后做变换。不知道可以不可以实现。。我猜想能不能通过2个波的256个点的表,进行互相变换。就是找不到256个表,没研究表上每个值的具体意义比如跟相位幅度的关系之类的,不知道具体操作该怎么样。知道的发表下意见,让我学习下。
-
读取是默认字读取不是字节读取的吗?
-
哦。谢了!
-
还是他内部用的我们不能用的,要用的话要另外接EEPROM的?CCS中没有例子,手册上外设里也没有他,怀疑是不是不能用的。。。来个知道的说下!
-
就是群加不进去啊!
-
好帖!我看好你哦
-
模拟IO口应该可以实现。加入不用IO模拟SPI,就用单片机上面的SPI的话,我要的16位数据是连续输给芯片的中间不能断,SPI分两次会不会不行啊。中间断了呀
-
话说不会传PDF想把 TLV5616的PDF传下的。。。好心人直接百度下这个PDF吧反正就第一个
-
同问!
-
//******************************************************************************
// MSP430G2xx3 Demo - USCI_B0 I2C Slave TX single bytes to MSP430 Master
//
// Description: This demo connects two MSP430's via the I2C bus. The master
// reads from the slave. This is the slave code. The TX data begins at 0
// and is incremented each time it is sent. An incoming start condition
// is used as a trigger to increment the outgoing data. The master checks the
// data it receives for validity. If it is incorrect, it stops communicating
// and the P1.0 LED will stay on. The USCI_B0 TX interrupt is used to know
// when to TX.
// ACLK = n/a, MCLK = SMCLK = default DCO = ~1.2MHz
//
// /|\ /|\
// MSP430G2xx3 10k 10k MSP430G2xx3
// slave | | master
// ----------------- | | -----------------
// -|XIN P1.7/UCB0SDA||P1.7/UCB0SDA XIN|-
// | | | | |
// -|XOUT | | | XOUT|-
// | P1.6/UCB0SCL||P1.6/UCB0SCL |
// | | | P1.0|--> LED
//
// D. Dang
// Texas Instruments Inc.
// February 2011
// Built with CCS Version 4.2.0 and IAR Embedded Workbench Version: 5.10
//******************************************************************************
#include "msp430g2553.h"
unsigned char TXData;
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
P1DIR |= BIT0; // P1.0 output
P1SEL |= BIT6 + BIT7; // Assign I2C pins to USCI_B0
P1SEL2|= BIT6 + BIT7; // Assign I2C pins to USCI_B0
UCB0CTL1 |= UCSWRST; // Enable SW reset
UCB0CTL0 = UCMODE_3 + UCSYNC; // I2C Slave, synchronous mode
UCB0I2COA = 0x48; // Own Address is 048h
UCB0CTL1 &= ~UCSWRST; // Clear SW reset, resume operation
UCB0I2CIE |= UCSTTIE; // Enable STT interrupt
IE2 |= UCB0TXIE; // Enable TX interrupt
TXData = 0xff; // Used to hold TX data
while (1)
{
__bis_SR_register(CPUOFF + GIE); // Enter LPM0 w/ interrupts
}
}
// USCI_B0 Data ISR
#pragma vector = USCIAB0TX_VECTOR
__interrupt void USCIAB0TX_ISR(void)
{
UCB0TXBUF = TXData; // TX data
__bic_SR_register_on_exit(CPUOFF); // Exit LPM0
}
// USCI_B0 State ISR
#pragma vector = USCIAB0RX_VECTOR
__interrupt void USCIAB0RX_ISR(void)
{
UCB0STAT &= ~UCSTTIFG; // Clear start condition int flag
TXData++; // Increment data
}
-
打错了,应该是 中间没动过各自的I2C芯片
-
或者说CCS上的例子只是利用I2C的协议来达到两个LUAUNCHPAD的通信,中间动过各自的I2C芯片。
-
太赞了!
-
NICE!~
-
将他和一个电阻分压,然后用AD口检测他的电压,然后测一个温度-电压的函数,把测出来的电压转变成温度。