long int numread = 0;\r
inline void cts(int c) {\r
numread++;\r
- if (c /*&& numread < 10000*/) {\r
- PORTE |= (1 << 4);\r
- PORTE |= (1 << 2);\r
+ if (c) {\r
+ PORTE &= ~(1 << 7);\r
portd(0, 0);\r
} else {\r
- PORTE &= ~(1 << 4);\r
- PORTE &= ~(1 << 2);\r
+ PORTE |= (1 << 7);\r
portd(0, 1);\r
}\r
}\r
ret = read_buf[read_buf_head];\r
read_buf_head = inc(read_buf_head);\r
if (!read_nearlyFull()) cts(1);\r
+ if (PORTE & (1<<3)) PORTE &= ~(1<<3);\r
+ else PORTE |= (1<<3);\r
return ret;\r
}\r
\r
if (PORTE & (1<<2)) PORTE &= ~(1<<2);\r
else PORTE |= (1<<2);\r
UCSR0B |= (1 << UDRIE0);\r
- if (PORTE & (1<<3)) PORTE &= ~(1<<3);\r
- else PORTE |= (1<<3);\r
}\r
\r
\r
//PORTE |= (1<<0);\r
sei();\r
}\r
-void die() { cli(); cts(0); _delay_ms(2000); while(1) { portd(2,0); portd(2,1); } }\r
+void die() { cli(); PORTE|=(1<<5); _delay_ms(2000); while(1) { portd(2,0); portd(2,1); } }\r
\r
ISR(SIG_UART0_RECV) {\r
\r
}\r
\r
int main() {\r
- DDRE = (1<<7) | (1<<5) | (1<<4) | (1<<3) | (1<<2);\r
+ DDRE = (1<<7) | (1<<5) | (1<<3) | (1<<2);\r
PORTE = 0;\r
\r
init();\r
}\r
*/\r
\r
- PORTE |= (1<<3);\r
- PORTE |= (1<<5);\r
- recv();\r
- send('O');\r
- send('B');\r
- send('I');\r
- send('T');\r
- send('S');\r
- send('\n');\r
-\r
int x=0, y=0, z=0;\r
//while(1) send(/*FISUA*/2);\r
for(;;) {\r
int i, d=0;\r
int r = recv();\r
switch(r) {\r
+ case 0:\r
+ send('O');\r
+ send('B');\r
+ send('I');\r
+ send('T');\r
+ send('S');\r
+ send('\n');\r
+ PORTE |= (1<<3);\r
+ break;\r
case 1:\r
z = recv();\r
y = recv();\r