-
我觉得酷学玩的也不错,很有特点
-
刚刚出差回来,对我遇到的这个问题总结一下:
我想我这个问题特殊地方,就是不要求定时器连续测量,而是收到触发信号之后开始测量,没有触发信号停止测量。这样一来定时器就不能简单只在初始化配置一下就完了,否则上电后第一次测量没问题,后面的测量头几个数值可能就会出问题。
一开始我是在收到触发信号之后配置定时器,TIM ENABLE,然后结束测量时TIM DISABLE,下次测量时再重新配置再TIM ENABLE。这样一开始在我调程序的板子上使用没啥问题,但是在那块装到控制柜的板子上发现二次测量时第一个值总是错成一个固定值(就是我开贴时提出的问题)。后来听取楼下人的意见,改在上电初始化是配置定时器,测量时只允许中断,结束时中断禁止。这样二次测量时虽然不在出现固定错误值,但是有时会出现测量比实际多出一个值(这个是我在第一页末提的问题)。现在我的解决办法是在每次测量结束和下次测量开始分别用TIM_GetCapture1/2/3/4读取定时器的各个捕获值,再用TIM_ClearFlag清除CC2/CC3待处理标志位,目前即使是控制柜里的板子也还没出现过问题。这样做肯定是有多余的地方,只是我不确定是哪块,所以保险起见就都加上了。
我遇到的就是这个问题,希望对其他有类似需求的朋友有帮助,也希望版主能有更权威的解释和处理方案。
——菜鸟敬上
-
就是一个宏的定义,不能分开看,学过C++就知道了,很多这样的
-
版主,一个星期过去了,有结果了吗? 我现在也想知道. 用FSMC 8位模式可以接8位并行总线的RAM吗?看到手册上说
下载 (12.93 KB)
2010-7-15 21:02
没有NBL不知道可不可以以8位模式读写?
-
你的意思是你现在的程序已经可以编译通过了,是么?
不用kdbg, eclipse直接运行会出错么?
-
你的 触摸屏上面有 X Y 线路上是不是有 4 个匹配电容,
把匹配电容取消掉看看~!~!
-
楼主可以把接收和发送的程序给我下吗?
我现在也在做这个但是遇到了问题~
-
引用楼主 cs100504 的回复:
KeRaiseIrql(DISPATCH_LEVEL, &OldIrql);
......
KeLowerIrql(OldIrql);
上面的代码修改自己写的驱动中的函数成功,
修改某些系统函数,只读错误蓝屏。
KeRaiseIrql之后,系统地IRQL提升了(好像是提到DISPATCH_LEVEL以上)。这个时候某些系统函数是不允许使用的。WDK里面会有很详细的说明。
你去看看调用的系统函数WDK说明,然后看看BSOD错误代码和对应信息是什么就明白原因了。
-
EN ...LS说的不错,UCTL0=CHAR就是将USART模块的控制寄存器的第5位置1(传输数据位为8位),其余位为0。而UCTL0|=CHAR是只将第5位置1。。。置于为什么不能够运行可能是UCTL0中的SWRST位的缘故(SWRST这样规定:现在SWRST=1的情况下设置串口,然后设置SWRST=0.如果需要中断,则设置相应的中断...也就是说你设置完串口后要将SWRST复位,即
UCTL0&=~SWRST;)你在设置完串口后加上这句看看行不行?
-
ICC AVR吗?
AVR的单片机只能是整个8位端口的读写,不支持位操作。
读-修改-写。
-
引用 15 楼 lbing7 的回复:
引用 13 楼 xmrforever 的回复:引用 11 楼 lbing7 的回复:感觉是不是由那一路基准信号过来,捕获一下两路信号的时间,然后在一定的差异下就能知道是状态1或是状态2 捕获两路信号的时间是什么意思? 这三路信号的周期是一样的
你现在不是相当于在测相位嘛
频率是已知的
在基准信号来的时候,开始捕获被测信号1,这就能知道是否是同相位的
如果不同,则是状态2
如果同,再切换下一路来测
如果不同,则是状态2,如果同则是状态1
我就是这么做的,测试信号的时候发现通道1与通道2有时会有10us的相位差
在基准信号到来的时候我做了个20us的延迟,可以比较出来的结果还是不对
现在用的PIC16F72这个片子没法用ICD2在线仿真,不然就能看到电平变化了
马上打算用PIC16F723在线仿真一下试试看
-
引用 5 楼 h86111132 的回复:
引用 1 楼 kyzf 的回复:是不是需要发心跳包,而楼主没有定时发?
这个要怎么发,一般的手机里GPRS上网也不需要这个啊
一般是需要发的,通常是单独写一个小软件,每隔一段时间去ping一下。
-
1、用户是不能擦除system memory的,
2、用户在自己的程序中跳转到system memory,使用ISP进行程序下载,用户原有的所有代码都将被擦除;下一次用户将无法进行IAP操作。 ...
iap和用户程序坐在一起不就行了
-
搞一个温控仪,什么问题都解决了。呵呵
-
引用 5 楼 gooogleman 的回复:
关于ECC我也一知半解,这个MLC的我更不理解,只能帮顶了。
不是MLC的哦,是SLC的32M的芯片。2048BLOCK 32PAGE 512+16BYTE
-
AnalysisPacket(MyPacket, TRUE);
if (pAdapt->MiniportHandle != NULL)
{
NDIS_SET_PACKET_STATUS(MyPacket, NDIS_STATUS_RESOURCES);
NdisMIndicateReceivePacket(pAdapt->MiniportHandle, &MyPacket, 1);
NdisUnchainBufferAtFront(MyPacket,&MyBuffer);
NdisQueryBufferSafe(MyBuffer,&MyPacketContent,&BufLength,32);
if(MyPacketContent != NULL)
NdisFreeMemory(MyPacketContent,BufLength,0);
NdisFreeBuffer(MyBuffer);
NdisDprFreePacket(MyPacket);
break;
}
AnalysisPacket之前是对包的修改过程,AnalysisPacket分析发现包的内容确实已经修改好,然后我用的winpcap-Sniffer捕获确发现显示的是修改前的内容,是选用Sniffer测试结果不对吗?
-
"但是其中给isp用的系统区还是存在的,既然isp的程序代码还在,那干脆就跳到系统区去实现得了"
意义不明
-
引用 1 楼 ericzhangali 的回复:
你说的是这个吗?http://book.51cto.com/art/200904/120998.htm
学习.
-
如果楼上这个比较简单的工具可以用当然更好,楼主试试看吧。
-
百度或者GOOGLE,应该有不少的类似代码。
另外学校图书馆里面的VERILOG 或者FPGA的书籍,很多都是带光盘,带实例,楼主去借看下,说不定能找到。