From 3c67ba97955922e6047deae561ac7106bea14a91 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Wed, 22 Feb 2012 21:27:27 +0000 Subject: moved cmx589 sample code software directory git-svn-id: https://svn.spreadspace.org/mur.sat@248 7de4ea59-55d0-425e-a1af-a3118ea81d4c --- hardware/cmx589a_teensy_test/cmx589a.c | 267 --------------------------------- 1 file changed, 267 deletions(-) delete mode 100644 hardware/cmx589a_teensy_test/cmx589a.c (limited to 'hardware/cmx589a_teensy_test/cmx589a.c') diff --git a/hardware/cmx589a_teensy_test/cmx589a.c b/hardware/cmx589a_teensy_test/cmx589a.c deleted file mode 100644 index ebeeca6..0000000 --- a/hardware/cmx589a_teensy_test/cmx589a.c +++ /dev/null @@ -1,267 +0,0 @@ -/* Simple example for Teensy USB Development Board - * http://www.pjrc.com/teensy/ - * Copyright (c) 2008 PJRC.COM, LLC - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -#include -#include -#include -#include -#include "usb_serial.h" -#include "uart.h" - -#define LED_CONFIG (DDRD |= (1<<6)) -#define LED_ON (PORTD |= (1<<6)) -#define LED_OFF (PORTD &= ~(1<<6)) -#define CPU_PRESCALE(n) (CLKPR = 0x80, CLKPR = (n)) - -#define INT1_SET_INPUT (DDRD |= (1<<1)) -#define PB3_SET_OUTPUT (DDRB &= ~ (1<<3)) -#define PB7_SET_OUTPUT (DDRB &= ~(1<<7)) - -#define PB3_TX_ENABLE (PORTB |= (1<<3)) -#define PB3_TX_DISABLE (PORTB &= ~(1<<3)) - -#define ExtInt1On EIMSK |= 1 << INT1 -#define ExtInt1Config EICRA |= (1 << ISC10 ) | ( 1 << ISC11) - -#define UART_SET_DEFAULT UCSR1C = 0 -#define UART_SET_8BIT UCSR1C |= (1 << UMSEL10) | (1 << UCSZ10) | (1 << UCSZ11) -#define UART_SET_EXT_CLK XCK1_DDR &= ~(1< ")); - n = recv_str(buf, sizeof(buf)); - if (n == 255) break; - send_str(PSTR("\r\n")); - parse_and_execute_command(buf, n); - } - } -} - - -// Send a string to the USB serial port. The string must be in -// flash memory, using PSTR -// -void send_str(const char *s) -{ - char c; - while (1) { - c = pgm_read_byte(s++); - if (!c) break; - usb_serial_putchar(c); - } -} - -// Receive a string from the USB serial port. The string is stored -// in the buffer and this function will not exceed the buffer size. -// A carriage return or newline completes the string, and is not -// stored into the buffer. -// The return value is the number of characters received, or 255 if -// the virtual serial connection was closed while waiting. -// -uint8_t recv_str(char *buf, uint8_t size) -{ - int16_t r; - uint8_t count=0; - - while (count < size) { - r = usb_serial_getchar(); - if (r != -1) { - if (r == '\r' || r == '\n') return count; - if (r >= ' ' && r <= '~') { - *buf++ = r; - usb_serial_putchar(r); - count++; - } - } else { - if (!usb_configured() || - !(usb_serial_get_control() & USB_SERIAL_DTR)) { - // user no longer connected - return 255; - } - // just a normal timeout, keep waiting - } - } - return count; -} - -// parse a user command and execute it, or print an error message -// -void parse_and_execute_command(const char *buf, uint8_t num) -{ - uint8_t port, pin, val; - - if (num < 3) { - send_str(PSTR("unrecognized format, 3 chars min req'd\r\n")); - return; - } - // first character is the port letter - if (buf[0] >= 'A' && buf[0] <= 'F') { - port = buf[0] - 'A'; - } else if (buf[0] >= 'a' && buf[0] <= 'f') { - port = buf[0] - 'a'; - } else { - send_str(PSTR("Unknown port \"")); - usb_serial_putchar(buf[0]); - send_str(PSTR("\", must be A - F\r\n")); - return; - } - // second character is the pin number - if (buf[1] >= '0' && buf[1] <= '7') { - pin = buf[1] - '0'; - } else { - send_str(PSTR("Unknown pin \"")); - usb_serial_putchar(buf[0]); - send_str(PSTR("\", must be 0 to 7\r\n")); - return; - } - // if the third character is a question mark, read the pin - if (buf[2] == '?') { - // make the pin an input - *(uint8_t *)(0x21 + port * 3) &= ~(1 << pin); - // read the pin - val = *(uint8_t *)(0x20 + port * 3) & (1 << pin); - usb_serial_putchar(val ? '1' : '0'); - send_str(PSTR("\r\n")); - return; - } - // if the third character is an equals sign, write the pin - if (num >= 4 && buf[2] == '=') { - if (buf[3] == '0') { - // make the pin an output - *(uint8_t *)(0x21 + port * 3) |= (1 << pin); - // drive it low - *(uint8_t *)(0x22 + port * 3) &= ~(1 << pin); - return; - } else if (buf[3] == '1') { - // make the pin an output - *(uint8_t *)(0x21 + port * 3) |= (1 << pin); - // drive it high - *(uint8_t *)(0x22 + port * 3) |= (1 << pin); - return; - } else { - send_str(PSTR("Unknown value \"")); - usb_serial_putchar(buf[3]); - send_str(PSTR("\", must be 0 or 1\r\n")); - return; - } - } - // otherwise, error message - send_str(PSTR("Unknown command \"")); - usb_serial_putchar(buf[0]); - send_str(PSTR("\", must be ? or =\r\n")); -} - -- cgit v1.2.3