Initial transfer from sourceforge
This commit is contained in:
commit
f2259c5424
415 changed files with 73200 additions and 0 deletions
162
Asixtool/asix-testcode/main.c
Normal file
162
Asixtool/asix-testcode/main.c
Normal file
|
@ -0,0 +1,162 @@
|
|||
#include <8052.h>
|
||||
|
||||
#include "ax110xx.h"
|
||||
#include "interrupt_ax110xx.h"
|
||||
#include "cpu_ax110xx.h"
|
||||
#include "types_ax110xx.h"
|
||||
#include "uart/uart.h"
|
||||
|
||||
#define ERASE_EVENT 1
|
||||
#define WRITE_EVENT 2
|
||||
#define READ_EVENT 3
|
||||
|
||||
extern void ax11000_PeripherialISR(void) __interrupt 9;
|
||||
#if UART0_ENABLE
|
||||
extern void uart0_ISR(void) __interrupt 4 __using 2;
|
||||
#endif
|
||||
#if UART1_ENABLE
|
||||
extern void uart1_ISR(void) __interrupt 6 __using 2;
|
||||
#endif
|
||||
|
||||
|
||||
volatile unsigned char hi_flag = 1;
|
||||
volatile unsigned char timer = 0;
|
||||
volatile unsigned char tstate = 0;
|
||||
|
||||
|
||||
void timer0_irq_proc(void) __interrupt 1 using 2
|
||||
{
|
||||
timer++;
|
||||
|
||||
if (timer == 0)
|
||||
{
|
||||
tstate = 1;
|
||||
}
|
||||
|
||||
switch(tstate)
|
||||
{
|
||||
case 1:
|
||||
case 16:
|
||||
P1_0 = 0;
|
||||
break;
|
||||
case 8:
|
||||
case 24:
|
||||
P1_0 = 1;
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
if(tstate)
|
||||
tstate++;
|
||||
|
||||
TR0 = 0; /* Stop Timer 0 counting */
|
||||
TH0 = 0x00;
|
||||
TL0 = 0x00;
|
||||
TR0 = 1; /* Start counting again */
|
||||
}
|
||||
|
||||
void pause(unsigned char len)
|
||||
{
|
||||
unsigned char a;
|
||||
unsigned int b;
|
||||
a=len;
|
||||
b=0xFFFF;
|
||||
while(a--)
|
||||
{
|
||||
while(b--)
|
||||
{
|
||||
__asm
|
||||
nop
|
||||
__endasm;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
unsigned char _sdcc_external_startup()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
void putstring(char *string)
|
||||
{
|
||||
unsigned char sc;
|
||||
sc = 0;
|
||||
while(string[sc] != 0)
|
||||
putchar(string[sc++]);
|
||||
}
|
||||
|
||||
const char hval[16] = { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' };
|
||||
|
||||
void putHexB(unsigned char b)
|
||||
{
|
||||
putchar(hval[b>>4]);
|
||||
putchar(hval[b&0x0F]);
|
||||
}
|
||||
|
||||
void putHexW(unsigned int w)
|
||||
{
|
||||
putHexB(w>>8);
|
||||
putHexB(w&0xFF);
|
||||
}
|
||||
|
||||
void putHexD(unsigned long d)
|
||||
{
|
||||
putHexW(d>>16);
|
||||
putHexW(d&0xFFFF);
|
||||
}
|
||||
|
||||
void main(void)
|
||||
{
|
||||
AX11000_Init();
|
||||
|
||||
switch (CSREPR & (BIT6|BIT7))
|
||||
{
|
||||
case SCS_100M :
|
||||
goto three;
|
||||
break;
|
||||
case SCS_50M :
|
||||
goto two;
|
||||
break;
|
||||
case SCS_25M :
|
||||
goto one;
|
||||
break;
|
||||
}
|
||||
|
||||
goto none;
|
||||
|
||||
three:
|
||||
P1 = 0x00;
|
||||
pause(0x07);
|
||||
P1 = 0xFF;
|
||||
pause(0x07);
|
||||
two:
|
||||
P1 = 0x00;
|
||||
pause(0x07);
|
||||
P1 = 0xFF;
|
||||
pause(0x07);
|
||||
one:
|
||||
P1 = 0x00;
|
||||
pause(0x07);
|
||||
P1 = 0xFF;
|
||||
none:
|
||||
|
||||
TCON = 0; /* timer control register, byte operation */
|
||||
TH0 = 0x00;
|
||||
TL0 = 0x00;
|
||||
TR0 = 1; /* start timer0 */
|
||||
ET0 = 1; /* Enable Timer 0 overflow interrupt IE.1 */
|
||||
TI = 0; /* clear this out */
|
||||
|
||||
UART_SetPort(0);
|
||||
|
||||
TMOD = (TMOD & 0xF0) | 0x01; /* timer control mode, byte operation */
|
||||
|
||||
EA = 1; /* Enable Interrupts */
|
||||
|
||||
while (1)
|
||||
{
|
||||
pause(0x0F);
|
||||
|
||||
putstring("Hello World!\n\r");
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue