📄 test2.c
字号:
#pragma CODE_SECTION(vect,"vect")
ioport unsigned int port0000;
ioport unsigned int port0004;
unsigned int *pmem=0;
unsigned int flag;
unsigned int TIMER;
unsigned int k;
#define IMR *(pmem+0x0000)
#define IFR *(pmem+0x0001)
#define TIM0 *(pmem+0x0024) /* timer0 register */
#define PRD0 *(pmem+0x0025) /* timer0 period register */
#define TCR0 *(pmem+0x0026) /* timer0 control register */
#define PMST *(pmem+0x001D)
#define SWCR *(pmem+0x002B)
#define SWWSR *(pmem+0x0028)
void cpu_init()
{
PMST=0x3FA0;
SWWSR=0x7fff;
SWCR=0x0000;
IMR=0;
IFR=IFR;
}
void set_int2() /* timing 4ms for 65Mhz */
{
asm(" ssbx intm");
/*TCR0=0x0b1b;
PRD0=0x4e1f;*/
IMR=IMR|0x0004;
IFR=IFR;
/* TCR0=0x0b2b; start timer0 */
asm(" rsbx intm");
}
void main(void)
{
flag=0;
cpu_init();
set_int2();
for(;;)
{
if(flag==0)
{
k=21845;
port0004=k;
port0000=k;
asm(" ssbx xf");
}
else
{
k=43690;
port0004=k;
port0000=k;
asm(" rsbx xf");
}
}
}
interrupt void int2()
{
asm("nop");
*(int *)0x300=*(int *)0x300+2; /*break here to show if interrupt happened*/
if(flag==0)
flag=1;
/* k=21845;
port0001=k;
port0000=k;
asm(" ssbx xf"); */
else
flag=0;
/* k=43690;
port0001=k;
port0000=k;
asm(" rsbx xf"); */
}
void vect()
{
asm(" .ref _c_int00");
asm(" .ref _int2");
asm(" b _c_int00"); /* reset */
asm(" nop");
asm(" nop");
asm(" rete"); /* nmi */
asm(" nop");
asm(" nop");
asm(" nop");
asm(" rete");
asm(" nop");
asm(" nop");
asm(" nop");
asm(" rete");
asm(" nop");
asm(" nop");
asm(" nop");
asm(" rete");
asm(" nop");
asm(" nop");
asm(" nop");
asm(" rete");
asm(" nop");
asm(" nop");
asm(" nop");
asm(" rete");
asm(" nop");
asm(" nop");
asm(" nop");
asm(" rete");
asm(" nop");
asm(" nop");
asm(" nop");
asm(" rete");
asm(" nop");
asm(" nop");
asm(" nop");
asm(" rete");
asm(" nop");
asm(" nop");
asm(" nop");
asm(" rete");
asm(" nop");
asm(" nop");
asm(" nop");
asm(" rete");
asm(" nop");
asm(" nop");
asm(" nop");
asm(" rete");
asm(" nop");
asm(" nop");
asm(" nop");
asm(" rete");
asm(" nop");
asm(" nop");
asm(" nop");
asm(" rete");
asm(" nop");
asm(" nop");
asm(" nop");
asm(" rete");
asm(" nop");
asm(" nop");
asm(" nop");
asm(" rete"); /* int0 */
asm(" nop");
asm(" nop");
asm(" nop");
asm(" rete"); /* int1 */
asm(" nop");
asm(" nop");
asm(" nop");
asm(" b _int2"); /* int2 */
asm(" nop");
asm(" nop");
asm(" rete"); /* tint0 */
asm(" nop");
asm(" nop");
asm(" nop");
asm(" rete"); /* brint0 */
asm(" nop");
asm(" nop");
asm(" nop");
asm(" rete"); /* bxint0 */
asm(" nop");
asm(" nop");
asm(" nop");
asm(" rete"); /* dmac0 */
asm(" nop");
asm(" nop");
asm(" nop");
asm(" rete"); /* tint1 */
asm(" nop");
asm(" nop");
asm(" nop");
asm(" rete"); /* int3 */
asm(" nop");
asm(" nop");
asm(" nop");
asm(" rete"); /* hpint */
asm(" nop");
asm(" nop");
asm(" rete"); /* brint1 */
asm(" nop");
asm(" nop");
asm(" nop");
asm(" rete"); /* bxint1 */
asm(" nop");
asm(" nop");
asm(" nop");
asm(" rete"); /* dmac4 */
asm(" nop");
asm(" nop");
asm(" nop");
asm(" rete"); /* dmac5 */
asm(" nop");
asm(" nop");
asm(" nop");
asm(" nop");
asm(" nop");
asm(" nop");
asm(" nop");
asm(" nop");
asm(" nop");
asm(" nop");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -