X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fslipway%2FFtdiBoardSlave.c;h=b5dd1a334d8e16d6207dbf65e4aba92c9e5b93a7;hb=57f6ad104a6e2bf0433a86f5c8e1f31c1715dab9;hp=52f38171e95271bf348bb6124ed1a5b95aef2966;hpb=f6099b976e2007f794cbec45c5175d4e49aa1c1b;p=slipway.git diff --git a/src/edu/berkeley/slipway/FtdiBoardSlave.c b/src/edu/berkeley/slipway/FtdiBoardSlave.c index 52f3817..b5dd1a3 100644 --- a/src/edu/berkeley/slipway/FtdiBoardSlave.c +++ b/src/edu/berkeley/slipway/FtdiBoardSlave.c @@ -28,25 +28,13 @@ void initUART0(unsigned int baudRate, unsigned int doubleRate) { #define BUFSIZE (1024) -inline void portd(int bit, int on) { - /* - if (on) { - PORTD &= ~(1<= 301) fpga_interrupts(0); - //sei(); fpga_interrupts(1); -} -/* -ISR(SIG_OVERFLOW0) { - fpga_interrupts(0); - PORTD = ~FISUA; - TCNT0 = TIMERVAL; // load the nearest-to-one-second value into the timer0 - TIMSK |= (1<= 256) newi -= 256; - if (i != newi) err++; - //} - oldi = i; - - send(err >= 10 ? 255 : i); - //send(err); - } - */ int x=0, y=0, z=0; - //while(1) send(/*FISUA*/2); for(;;) { - /* - if (PORTE & (1<<6)) PORTE &= ~(1<<6); - else PORTE |= (1<<6); - */ int i, d=0; int r = recv(); switch(r) { @@ -267,22 +189,29 @@ int main() { send('S'); PORTE |= (1<<3); break; + case 1: z = recv(); y = recv(); x = recv(); d = recv(); - //portd(1,1); conf(z, y, x, d); - //portd(1,0); break; + case 2: - //fpga_interrupts(0); - //portd(1,1); - send(FISUA); - //portd(1,0); - //fpga_interrupts(1); + send(readFPGA()); break; + + case 3: { + int32_t local_interrupt_count = interrupt_count; + interrupt_count = 0; + send((local_interrupt_count >> 24) & 0xff); + send((local_interrupt_count >> 16) & 0xff); + send((local_interrupt_count >> 8) & 0xff); + send((local_interrupt_count >> 0) & 0xff); + break; + } + /* case 3: //init_timer(); @@ -293,43 +222,6 @@ int main() { case 5: sending = 0; break; - case 6: { - int32_t local_interrupt_count = interrupt_count; - interrupt_count = 0; - send((local_interrupt_count >> 24) & 0xff); - send((local_interrupt_count >> 16) & 0xff); - send((local_interrupt_count >> 8) & 0xff); - send((local_interrupt_count >> 0) & 0xff); - fpga_interrupts(1); - break; - } - */ - /* - default: { - if ((r & 0x80) == 0x80) { - switch (r & 0x44) { - case 0x44: z = recv(); break; - case 0x40: z++; break; - case 0x04: z--; break; - } - switch (r & 0x22) { - case 0x22: y = recv(); break; - case 0x20: y++; break; - case 0x02: y--; break; - } - switch (r & 0x11) { - case 0x11: x = recv(); break; - case 0x10: x++; break; - case 0x01: x--; break; - } - d = recv(); - portd(1,1); - conf(z, y, x, d); - portd(1,0); - break; - } - die(); - } */ } }