关于IO控制小灯的问题
新手,我写了个小灯程序,用的是SEED-DEC2407的模板和仿真器,程序是让D2小灯亮(也就是IOPF6输出高电平),D3灭(也就是使XF为低电平),程序有以下问题: 1 D2对应的IOPF6不论设置成高低都不亮,是不是IO驱动能力的问题啊? 2 D3(XF)可以灭,但我设置的死循环他自己以会又亮了,请问是不是看门狗的问题,如何设置。 3 普通IO口和XF管脚的驱动能力不同吗? 4 在CMD文件中,PVECS不能设置在0044h-7fffh,为什么呢?是不是因为我的FLASH加密了,但加密为什么0000h-0040h可以设置呢? 请大家赐教,在下感激不禁。
-l rts2xx.lib -stack 400
MEMORY { PAGE 0: VECS: org=0000h, len=0040h /* internal FLASH */ PVECS: org=8000h , len=7000h PAGE 1: BLK_B2: org=00060h, len=00020h /* internal DARAM */ BLK_B0: org=00200h, len=00100h /* internal DARAM */ BLK_B1: org=00300h, len=00100h /* internal DARAM */ SARAMDATA: org=00800h, len=00200h }
SECTIONS { .vectors: { }> VECS PAGE 0 .text: { }> PVECS PAGE 0 .cinit: { }> PVECS PAGE 0 .data: { }> BLK_B1 PAGE 1 .bss: { }> BLK_B0 PAGE 1 .const: { }> SARAMDATA PAGE 1 }
#include "f2407regs.h"
void main(void) {for(; { *SCSR2 = (*SCSR2) | 0x0004; asm (" setc SXM "; asm (" clrc OVM "; asm (" clrc CNF "; asm (" setc INTM "; asm (" clrc XF "; *WDCR = 0X006F; *IFR = 0XFFFF; *IMR = 0X0000; *SCSR1 = 0x81FE; *SCSR2 &= 0xFFFC; *MCRC &= 0xbfff; /*1011111111111111,将IOPF6设置成一般IO口*/ *PFDATDIR |= 0x4040; /*0100000001000000,将IOPF6脚设置成输出高电平*/ } }
|