Skip to content
Snippets Groups Projects
Commit 94268018 authored by Tom Feng's avatar Tom Feng
Browse files

clock and q works at same time

parent 38a4e075
No related branches found
No related tags found
1 merge request!16Withtime
......@@ -2,5 +2,6 @@
#define __CMD_H__
#define CMD_HALT 0
#define CMD_NOINPUT 1
int ListenCommand();
#endif
#ifndef __MYIO_H__
#define __MYIO_H__
#define COM1 0
#define COM2 1
int mygetc(int Channel,char* Char);
#endif
......@@ -28,7 +28,7 @@ startup.o: startup.s
$(AS) $(ASFLAGS) -o startup.o startup.s
startup.elf: startup.o
$(LD) $(LDFLAGS) -o $@ startup.o -lmycanvas -lmyclock -lcmd -lbwio -lgcc
$(LD) $(LDFLAGS) -o $@ startup.o -lmycanvas -lmyclock -lcmd -lmyio -lbwio -lgcc
clocktest.s: clocktest.c
$(XCC) -S $(CFLAGS) clocktest.c
......
......@@ -29,6 +29,8 @@ mycanvas.s: mycanvas.c
myclock.s: myclock.c
$(XCC) -S $(CFLAGS) myclock.c
myio.s: myio.c
$(XCC) -S $(CFLAGS) myio.c
bwio.o: bwio.s
$(AS) $(ASFLAGS) -o bwio.o bwio.s
......@@ -42,6 +44,9 @@ mycanvas.o: mycanvas.s
myclock.o: myclock.s
$(AS) $(ASFLAGS) -o myclock.o myclock.s
myio.o: myio.s
$(AS) $(ASFLAGS) -o myio.o myio.s
bwio.a: bwio.o
$(AR) $(ARFLAGS) $@ bwio.o
......@@ -53,12 +58,15 @@ mycanvas.a: mycanvas.o
myclock.a: myclock.o
$(AR) $(ARFLAGS) $@ myclock.o
myio.a: myio.o
$(AR) $(ARFLAGS) $@ myio.o
install: bwio.a mycanvas.a myclock.a cmd.a
install: bwio.a mycanvas.a myclock.a cmd.a myio.a
mv bwio.a ../../lib/libbwio.a
mv cmd.a ../../lib/libcmd.a
mv mycanvas.a ../../lib/libmycanvas.a
mv myclock.a ../../lib/libmyclock.a
mv myio.a ../../lib/libmyio.a
clean:
-rm -f *.s *.o *.a *~ ../../lib/*.a
#include <bwio.h>
#include <myio.h>
#include <cmd.h>
#include <mycanvas.h>
int ListenCommand()
{
CURSOR_POS(20,1);
char FirstChar = bwgetc(COM2);
switch(FirstChar){
case 'q':
return CMD_HALT;
default:
break;
}
char FirstChar;
if(mygetc(COM2, &FirstChar)){
switch(FirstChar){
case 'q':
return CMD_HALT;
default:
break;
}
}
return CMD_NOINPUT;
}
#include <myio.h>
#include <ts7200.h>
int mygetc(int Channel, char *Char){
int *flag, *data;
switch (Channel){
case COM1:
flag = (int *)(UART1_BASE + UART_FLAG_OFFSET);
data = (int *)(UART1_BASE + UART_DATA_OFFSET);
break;
case COM2:
flag = (int *)(UART2_BASE + UART_FLAG_OFFSET);
data = (int *)(UART2_BASE + UART_DATA_OFFSET);
break;
default:
break;
}
if( *flag & RXFF_MASK){
*Char = (char) *data;
return 1;
}else{
return 0;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment