-
正确的做法出来了。
应该是使用:#if (TestDefine == Test2)
for(i = 0; i < 10; i++)
{
...
}
#else
for(i = 0; i < 10; i++)
{
...
}
#endif
但为什么会出现我这样也不能设断点呢?原因是没有定义Test1和Test2。这样编译的时候根本就没有将#if #else #endif编译进去。也没有警告和错误显示。
增加定义Test1和Test2后,就可以正常设置断点了。呵呵!晕糊!
-
TO:版主
1:前一部分是SPI2初始化程序,后一部分是SPI3初始化程序;
2:语句
AFIO->MAPR=AFIO->MAPR & 0x00FFFFFF;
AFIO->MAPR=AFIO->MAPR | 0x02000000;
能否实现重新配置JTAG?重新配置JTAG也就是关闭JTAG后不是还有SW-DP调试接口吗??
并且我的系统只连接了SW-DP接口的2根线,调试没有问题啊!
-
好文章!!!!
-
getchar会等待的,有个标准库函数,可以用来检测是否有输入的.
试试_kbhit(),或是查一下C标准库函数.
-
#include "config.h"
#include "stdlib.h"
#define TaskStkLengh 64 //Define the Task0 stack length 定义用户任务0的堆栈长度
OS_STK TaskStk0 [TaskStkLengh]; //Define the Task0 stack 定义用户任务0的堆栈
OS_STK TaskStk1 [TaskStkLengh]; //Define the Task0 stack 定义用户任务1的堆栈
OS_STK TaskStk2 [TaskStkLengh]; //Define the Task0 stack 定义用户任务1的堆栈
void Task0(void *pdata); //Task0 任务0
void Task1(void *pdata); /*Tas1 任务1实现显示 */
void Task2(void *pdata); /*Tas1 任务1实现显示 */
/****************************************************************************
* 名称:main()
* 功能:主程序从这里开始运行
* 入口参数:
****************************************************************************/
int main (void)
{
OSInit();
OSTaskCreate(Task0,(void *)0, &TaskStk0[TaskStkLengh - 1], 2);
OSTaskCreate(Task1,(void *)0, &TaskStk1[TaskStkLengh - 1], 3);
OSTaskCreate(Task2,(void *)0, &TaskStk2[TaskStkLengh - 1], 4);
OSStart();
return 0;
}
/*********************************************************************************************************
** Task0 任务0
********************************************************************************************************/
void Task0 (void *pdata)
{
pdata = pdata; /*防止编译器警告 */
TargetInit(); /*硬件初始化 */
PINSEL0= 0;
IO0DIR = 7;
while(1)
{
OSTimeDly(2);
IO0SET = 1;
OSTimeDly(10);
IO0CLR = 1;
}
}
void Task1 (void *pdata)
{
pdata = pdata; /*防止编译器警告 */
while(1)
{
OSTimeDly(20);
IO0SET = (1
-
合理数值这个尺度如何把握呢
这个问题好像很简单吧,负数合理吗? 不可能的数值肯定是不合理咯。
-
MARK
-
问题解决,删帖吧
-
呵呵,这样正常,如果开始不准,很不靠谱,那肯定是有问题了。呵呵现在正常。
-
引用 2 楼 sunrain_hjb 的回复:
1.不装同步软件,也可以通过USB与PC通讯,不过是当成串口进行读写的。
2.安装同步软件,WinCE也支持同步的话,自然就可以同步上了。USB作为串口的情况下,是不能同步上的。不过,如果同步上,可以通过RAPI或者socket进行通讯了。
3.这种串口的速度大概是每秒4K字节左右,当时采用的是2410的平台测试的。
学习啦,MARK,
帮顶下。
-
__IO uint32_t LocalTime = 0; /* this variable is used to create a time reference incremented by 10ms */
uint32_t timingdelay;
-
GetLastError 看看。
-
在PB里面配置,编到image里面就行了。CE6.0下面的那几个voip的,应该在PB里面可以直接选中的。
-
第一次见other错误,见识了
-
应该是广告吧
-
我是初学者,感觉好象还是有问题啊,has_new_data=0好象应该放在irs()的第一句,好象应该是while(has_new_data),但如果在执行the_data=....时正好中断产生了呢????
-
Keyboard在哪个目录
-
哦,5楼的可以省个芯片哦
-
查了3天的资料,使用AT命令拨号连接没撒进展,还是先使用工具拨号,配置好参数,调用这些工具拨号实现控制连接或断开算了,真希望有高手能把这个AT命令拨号连接帮忙详细讲解下
-
引用 266 楼 lilanqing81 的回复:
不识庐山真面目,只缘身在此山中啊。
能认识庐山真面目的要么是仙人,可以飞在天上俯瞰整座庐山,要么是坐在直升飞机上,您能认识庐山,不知道是属于哪种?
得道成仙也许要究极一生的修炼,坐一次直升飞机也要花费半个月的薪水,我掏80块钱的门票,用上一天时间,在庐山转上一圈,拍上8个G的照片加视频,我先了解了庐山再说
再回来讨论您的话题,教科书都写的艰涩难懂,想搞硬件开发的初学者,还需要先取得C语言高级程序员资格才能看的懂,等到了能开发产品的阶段,小半辈子过去了
我的老师就告诉我“保证功能的基础上产品越简单,越稳定就是好产品”
这里的产品指的是单片机产品,不是ARM产品,不是计算机产品
当然您的观点还是正确的,模块化设计确实可以避免同样功能代码重复开发,但是那不是单片机教科书的重点
那是编程思想的重点,是单片机其中一个章节“模块化程序设计的重点”
归根结底,单片机开发还是着重硬件开发,在整个开发周期里,设计软件只占用1/4的精力和时间
前期产品的定型,功能的实现,硬件电路的设计,PCB电路板的出图才是关键
和您一块负责项目开发的硬件工程师讨论一下就知道了
"我的老师就告诉我“保证功能的基础上产品越简单,越稳定就是好产品”"
模块化了、可读性提高了,就一定复杂了吗?反正我做的单品机项目中(也不多,五六个吧)目前运行还没什么大问题。其中有一个项目我专门提一下,这个项目是给一个大学做防盗报警的。因为学校一直在不定期增加设备,每次都有一点需求变化。幸亏我当时考虑到了这点,把容易变动的部分分离了出来,所以每次只要小小的改动就可以用了。否则的话,每次增加设备,每次都大范围改动,岂不累死了。
“当然您的观点还是正确的,模块化设计确实可以避免同样功能代码重复开发,但是那不是单片机教科书的重点那是编程思想的重点,是单片机其中一个章节“模块化程序设计的重点””
或是上面的讨论中“模块化”这个词用的频率太多了,导致容易被理解成我讨论的主题只有“模块化”,没有其他的了。
“归根结底,单片机开发还是着重硬件开发,在整个开发周期里,设计软件只占用1/4的精力和时间”
怎么我接触的单片机开发人员的观点正好和你的相反,他们人为写程序往往占用了一多半的开发时间。难道我遇到的都是个例?