-
cxzs1234 发表于 2015-7-21 11:16
能给个V8.3软件么
官网上还是有老版本的下载链接的 http://supp.iar.com/Download/SW/?item=EW8051-EVAL-830SP3 但是这个是8.30.sp3 的 还没有测能不能破
-
话说回来 cc系列的芯片 有的只能用IAR也是太恶心了,TI搞的那么混乱,有的可以用CCS有的又不行,下载器也是各种混乱,为啥要弄的这么不方便呢?Cypress之类的虽然产品线不如TI但是用户编程的体验远远好过。。。
-
十分感谢啊 给楼主这样无私分享点赞
-
我用demo code 的adc写法写了一个在LMP3下的外部电压检测,
timeA控制采集的 ISR如下:
/*------------------------------------------------------------------------------
* ADC10 interrupt service routine
------------------------------------------------------------------------------*/
#pragma vector=ADC10_VECTOR
__interrupt void ADC10_ISR(void)
{
if ((sIsExterV == 2)||(sIsExterV == 5))
{
sIsExterV = 0;
__bic_SR_register_on_exit(LPM3_bits + GIE);
}
else
{
__bic_SR_register_on_exit(CPUOFF); // Clear CPUOFF bit from 0(SR)
}
}
/*------------------------------------------------------------------------------
* Timer A0 interrupt service routine
------------------------------------------------------------------------------*/
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
TACCTL0 &= ~CCIE;
if ((sIsExterV == 1))
{
sIsExterV = 2;
ADC10CTL0 = SREF_1 + ADC10SHT_2 + REFON + ADC10ON + ADC10IE;
ADC10CTL0 |= ENC;
}
else
{
// if(sIsExterV == 4)
// {
// sIsExterV = 5;
// ADC10CTL0 = SREF_1 + ADC10SHT_2 + REFON + ADC10ON + ADC10IE;// + ADC10SR;
// ADC10CTL0 |= ENC;
// }
// else
// {
//if(sIsExterV != 2)
//{
sSelfMeasureSem = 1;
P2IFG &= ~0x01; // P2.0 IFG cleared
P2IE |= 0x01; //open the interrupt
__bis_SR_register_on_exit(LPM4_bits + GIE); // Set LPM4 bit for P2.0 interrupt
//}
// }
}
}
格式不标准请原谅。
外部电压可以测10mV都没问题。但是同样的方法 通道选11(AVcc/2)似乎就不行。。。比较郁闷
明天继续试验。。。。。 要找到LPM3通道11和通道10的方法
-
那么就是检测的是AVcc/2的范围是0 - 2.5v 实际最低工作电压是1.8v 所以检测范围应该是0.9v-2.5v,代表的AVcc是 1.8-5v 这样说对吗?可是我的第二个问题还是没有解释啊,确实在参考电压是2.5v的时候无法检测供电在2.3v的AVcc 也就是1.15的值没有啊。
10bit的AD,范围0 - 2.5v 分辨率理论上是0.00244140625v,这个没问题吧?不过我发现一个问题,Demo里面检测温度以后使用了两个8bit 无符号整型来存数据传输,而电压只用了一个 如下所示 /* message format, UB = upper Byte, LB = lower Byte ------------------------------- |degC LB | degC UB | volt LB | ------------------------------- 0 1 2 */ temp = results[1]; volt = (temp*15)/512; msg[0] = degC&0xFF; msg[1] = (degC>>8)&0xFF; msg[2] = volt;这样看来好像是在这里舍掉了两位呢?
[ 本帖最后由 wacsy 于 2011-6-20 20:42 编辑 ]
-
恩 实在不好意思 没注意这个问题:titter:
[ 本帖最后由 wacsy 于 2011-6-20 20:35 编辑 ]
-
有技术,还有有艺术。
-
哈哈 多谢鼓励。:lol
-
我承认我太粗心了。。。实在不好意思
首先,关于外接晶振,这个虽然不是重点,但是,gdo1和gdo2 看起来是根据软件设定而有不同的输出的,所以最好还是不要用外部晶振了,要在小板子上再焊外部晶振比较有困难。
关于aclk的问题 自问自答吧,
aclk有两个sources没有外部晶振了 还是可以选择vloclk的,所以设置一下BCSCTL3寄存器里面的 LFXT1S_2 即c代码里
BCSCTL3 |= LFXT1S_2;
这样 aclk就有了,如果是默认的00的话是32768 on lfxt1 是没有的。
所以关于ti上面公布的所有给f2274的例程中 aclk都需要外接32768Hz晶振,如果加上上面那一句的话就不用了。
具体频率还可以再通过软件选择。
-
十分感谢
-
还是关于0x10F4的问题, 这个东西是不是跟TLV有关啊?我看了半天code,发现代码里似乎没有对tempOffset进行过写入操作,只用它做了一个判断条件,然后就加到degC里面去了,可是根据表格里面,似乎0x10F4地址永远是0xFFFF啊,难道我搞混了吗?求指教。
-
太好了 十分感谢
-
我是先安装的ccsv4 学校授权的版本 然后直接插直接用了 win 7 64位 企业版
-
请问 最低哪个低功耗模式能够支持呢?不是所有的模式都可以支持中断唤醒吗?为什么要进入cpuoff呢?能不能进LPM4呢?
-
有一个关于温度的问题很奇怪啊。 注释里面说的:
// oC = ((A10/1024)*1500mV)-986mV)*1/3.55mV = A10*423/1024 - 278
// the temperature is transmitted as an integer where 32.1 = 321
// hence 4230 instead of 423
代码里面写的
degC = (((temp - 673) * 4230) / 1024);
为什么不是:
degC = temp*4230/1024 - 2780;
虽然 2780可以约等于673*4230/1024 可这样的转换一下对运算或编译有什么好处吗? 少用一个字节? 不是很理解 请大侠指点。十分感谢
-
请问版主,除了修改与f16x 的pin34 35相连接的 f2274的程序里面 UCBR UCBRS UCBRF 以外 还需要修改什么呢?十分感谢
-
太好了 十分感谢
-
我也想问问关于这些地址设置的问题,这样直接设置地址是为了什么目的呢?保存在flash里了?我看了一些关于操作flash的例程,还有调整时钟什么的,很复杂的啊?求帮助
-
这个版本的ed端 电池盒设计 不好焊吧?
-
麻烦楼主解释一下这些函数吧?smplStatus_t SMPL_Init(uint8_t (*)(linkID_t));smplStatus_t SMPL_Link(linkID_t *);smplStatus_t SMPL_LinkListen(linkID_t *linkID);smplStatus_t SMPL_Send(linkID_t lid, uint8_t *msg, uint8_t len);smplStatus_t SMPL_Receive(linkID_t lid, uint8_t *msg, uint8_t *len);smplStatus_t SMPL_Ioctl(ioctlObject_t, ioctlAction_t, void *);十分感谢