X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=pyfrprog.git;a=blobdiff_plain;f=pkernel%2Fmain.c;fp=pkernel%2Fmain.c;h=8e92a3a7616c8ca4e4b7c52e2aa5f98b48dd5da9;hp=74d1659ee066accd8f347946e4e05cc78a57b34c;hb=4ef55456b0c0d862a104e717bd12a514420b3747;hpb=2dbd7e5448cce8669e87c2b6a31cfac14f66e90e diff --git a/pkernel/main.c b/pkernel/main.c index 74d1659..8e92a3a 100644 --- a/pkernel/main.c +++ b/pkernel/main.c @@ -4,9 +4,24 @@ #define BUFSIZE 0x20 #define cleardata() memset(data,0,BUFSIZE) -static void increaseled(void) +void increaseled(void) { - PDR14 = ~(((~PDR14)+1)%256); +#define T_INIT 1100 + static unsigned int t = T_INIT; + static unsigned char l = (1<<0); + static unsigned char s = 1; + if(t == 0) { + if(l & (1<<0)) { + s = 1; + } else if (l & (1<<7)) { + s = 0; + } + l = s ? l << 1 : l >> 1; + PDR14 = ~l; + t = T_INIT; + } else { + t--; + } } static unsigned char recvbyte(void) @@ -68,7 +83,7 @@ void main(void) switch(recvbyte()) { case 0x15: //chip erase Putch4(0x45); - increaseled(); + PDR14 = ~(0x05); if(FLASH_ChipErase() != 1) { panic(); } @@ -85,13 +100,11 @@ void main(void) size = recvword(); increaseled(); - PDR14 = 0xff; for(i=0; i