import stamp.core.*;

public class uartTest {

  static final int txPin = CPU.pin0;  //transmit pin (output), connects via levelshifter to pc receive pin (RX)
  static final int rxPin = CPU.pin1;  //receive pin (input), connects via levelshifter to pc transmit pin (TX)
  static final int rtsPin = CPU.pin2; //rts pin (output), connects via levelshifter to pc clear to send pin (CTS)
  static final int ctsPin = CPU.pin3; //cts pin (input), connects via levelshifter to pc request to send pin (RTS)

  //select either uart without or with handshake

  //tx and rx uart without handshake, 9600 baud, no parity, 1 stopbit
  static Uart txUart = new Uart(Uart.dirTransmit,txPin,Uart.dontInvert,Uart.speed9600,Uart.stop1);
  static Uart rxUart = new Uart(Uart.dirReceive,rxPin,Uart.dontInvert,Uart.speed9600,Uart.stop1);

  //tx and rx uart with handshake, 9600 baud, no parity, 1 stopbit
//  static Uart txUart = new Uart(Uart.dirTransmit,txPin,Uart.dontInvert,ctsPin,Uart.dontInvert,Uart.speed9600,Uart.stop1);
//  static Uart rxUart = new Uart(Uart.dirReceive,rxPin,Uart.dontInvert,rtsPin,Uart.dontInvert,Uart.speed9600,Uart.stop1);

  public static void main() {
    char c = 'A';
    while (true) {
      txUart.sendByte(c); //send last received char continuesly
      if (rxUart.byteAvailable()) {
        c = (char)rxUart.receiveByte();
      }
    }
  }
}
 