-
貌似与指令对其有关:
NAME delay_us_100_s
EXTERN ?b0
public delay_us_100
SECTION `.far_func.text`:CODE:REORDER:NOROOT(3)
CODE
// 45 void delay_us_100(unsigned int temp) [url=]//@0x8010[/url]
// 46 {
delay_us_100:
TNZW X
JRNE L:??delay_us_100_0
// 47 unsigned int i ;
// 48 while(temp-->0)
// 49 {
// 50 for(i=0;i<49;i++)
// 51 {
// 52 asm("");
// 53 //asm("nop");
// 54 //asm("nop");
// 55 //asm("nop");
// 56 //asm("nop");
// 57 // asm("nop");
// 58 }
// 59 }
// 60 }
??delay_us_100_1:
RETF
??delay_us_100_2:
TNZW X
JREQ L:??delay_us_100_1
??delay_us_100_0:
DECW X
LD A, #0x31
LD S:?b0, A
??delay_us_100_3:
LD A, S:?b0
ADD A, #0xff
LD S:?b0, A
CLR A
CP A, S:?b0
JREQ L:??delay_us_100_2
JRA L:??delay_us_100_3
// 61
end
楼主再试试。
stm8_io.rar (27.12 KB)
下载次数:5
2011-1-4 15:28
-
引用 3 楼 shuilingshenjun 的回复:
请问楼上两位频谙数据怎么得出来?????谢谢,
自己努力研究吧,呵呵。。。
-
38K在驱动中应该可以搞定。
-
看错了,只是个函数名,你用multi-bin了吗?
-
楼主,我也在调51单片机应用NRF24L01模块,发射应该没有问题,可是就是不能接收,可后面可能是电路问题,那几块NRF24L01模块都不能用了,不知道楼主调通没,发份程序给我,(jincheng_lin@yahoo.cn)顺便讲一下电路怎么连接的,谢谢
-
晶振工作了,复位电路好着了,
我明明是把我输入数字的数码管值输出到了,接数码管abcdefgh的IO口中了,
我在KEIL中debug了一下看寄存器里就是放的那值
可是我测电压时发现abcdefgh端口都是高,
我用的是共阳极数码管
而且不出乱码
-
先帮顶起。。。
-
接匹配电阻,我接了120欧姆
但现在用的是测试的短距离测试,所以看不出效果,
还有另外两种方法是什么呢?
请不吝赐教!
-
的确没少费心思,顶一下!
-
接分祝福 回复内容太短了!
-
我的config.bib文件如下:
MEMORY
NK 80200000 01e00000 RAMIMAGE
RAM 82000000 01e00000 RAM
; FLASH 92000000 00100000 RESERVED
; Common RAM areas
AUD_DMA 80002000 00000800 RESERVED
SDIO_DMA 80010000 00010000 RESERVED
RES 80020000 00000800 RESERVED
ARGS 80020800 00000800 RESERVED
DBGSER_DMA 80022000 00002000 RESERVED
SER_DMA 80024000 00002000 RESERVED
IR_DMA 80026000 00002000 RESERVED
SLEEP 80028000 00002000 RESERVED
EDBG 80030000 00020000 RESERVED
DISPLAY 80080000 00180000 RESERVED
红色的是我自己添加的。我看到很多介绍文章中说的这个表最好是连续的,但是我找到了一个间隙,就加到了这里0x800(2K)的空间。不知可以吗?
AUD_DMA 段为什么从0x80002000开始而不是从0x80000000开始?
这里我还可以用的空间有多少?
然后我在intr.c文件中这样定义了两个变量
volatile int * m_Coder1 = (int *)0x80020000;
volatile int * m_Coder2 = (int *)0x80020004;
在OEMInterruptHandler()函数中。添加红色代码,并输出信息。可是为什么m_Coder1 ,m_Coder2变量内容乱变,没有规律。?不知道这样行吗?
if (irq == IRQ_EINT4_7 || irq == IRQ_EINT8_23) { // 4 or 5
// Find external interrupt number
mask = INREG32(&g_pPortRegs->EINTPEND);
mask &= ~INREG32(&g_pPortRegs->EINTMASK);
mask = (mask ^ (mask - 1)) >> 5;
irq2 = IRQ_EINT4;
while (mask != 0) {
mask >>= 1;
irq2++;
}
irq3 = INREG32(&g_pIntrRegs->EINTPEND);
if((irq3 & 0x00002000) == 0x00002000)// 13
{
*m_Coder1++;
RETAILMSG(1,(TEXT("m_Coder1 m_Coder1 = %d \r\n",*m_Coder1)));
}
RETAILMSG(1,(TEXT("m_Coder1 = %d \r\n",*m_Coder1)));
if((irq3 & 0x00000100) == 0x00000100 )// 8
{
*m_Coder2++;
RETAILMSG(1,(TEXT("m_Coder2 m_Coder2 = %d \r\n",*m_Coder2)));
}
RETAILMSG(1,(TEXT("m_Coder2 = %d \r\n",*m_Coder2)));
// Mask and clear interrupt
mask = 1 EINTMASK, mask);
OUTREG32(&g_pPortRegs->EINTPEND, mask);
// Clear primary interrupt
mask = 1 SRCPND, mask);
OUTREG32(&g_pIntrRegs->INTPND, mask);
// From now we care about this irq
irq = irq2;
}
-
引用 5 楼 kyzf 的回复:
关于楼主这些问题,百度或GOOGLE下,应该能找到一些帮助。
找个机会给你们加分嘛
-
可能是CE组件不全,如果可以,DEBUG看看提示什么
-
引用楼主:
……或者,是不是可以这样,端点1上传鼠标数据,端点2上传其它?
这个似乎可行。在PCM2902里面就是这样的。windows会找到一个USB HID与USB Codec。
-
飞思卡尔的收购了 METROWORKS的CODEWARRID.
就是那个ADS1.2的设计公司~
飞思卡尔估计也是免费提供开发包的吧?反正我以前使用的HC08的METROWORKS
的光碟是会议送来的,那么就是免费的了!
这样看来飞思卡尔产品,开发就不会选择COSMIC了吧?反正我当时开发HC08就只知道METROWORKS就是原厂飞思卡尔产品产品,肯定是有原厂的啦!
而C16X当然是要KEIL了,而且还是欧洲,KEIL最有名了。
哈哈,
COSMIC就是光为ST服务的,这是现实。
-
检测驱动设备类型?
-
你用的是BINFS格式还是RAM格式,有点糊涂,如果是BINFS,不应该只有NK。BIN,但你的这句OEMLaunch:failed to store Binfs Regions to Boot Media 分明是用了带BINFS格式的EBOOT,呵呵
-
帮顶,还没有弄过!
-
换用PM的BSP,FMD的BSP对MLC的支持很差。
-
百度。。一大把。
JX4Q2-PHJ7Y-VMRG6-CR6FY-F973Y
QRPDJ-7K68C-Y2GWJ-MBMQM-V8TW3