Show Posts
Pages: [1]
1  Forum 2005-2010 (read only) / Syntax & Programs / Re: Creating a serial protocol on: February 21, 2010, 05:33:45 am
thank you so much! its been a rough start for me but I am beginning to get this. here is what im working on. its just a shift register for lights for now:

#include "WProgram.h"
#include "bitlash.h"

// Declare a user function named "timer1" returning a numeric Bitlash value
//Pin connected to ST_CP of 74HC595
int latchPin = 44;
//Pin connected to SH_CP of 74HC595
int clockPin = 46;
////Pin connected to DS of 74HC595
int dataPin = 48;

numvar timer1(void) {
      return TCNT1;       // return the value of Timer 1

void blinkie(numvar val) {

  //ground latchPin and hold low for as long as you are transmitting
    digitalWrite(latchPin, LOW);
    shiftOut(dataPin, clockPin, MSBFIRST, val);  
    //return the latch pin high to signal chip that it
    //no longer needs to listen for information
    digitalWrite(latchPin, HIGH);

void setup(void) {
      initBitlash(57600);            // must be first to initialize serial port
  //set pins to output because they are addressed in the main loop
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);

      // Register the extension function with Bitlash
      //            "timer1" is the Bitlash name for the function
      //            0 is the argument signature: takes 0 arguments
      //            (bitlash_function) timer1 tells Bitlash where our handler lives
      addBitlashFunction("timer1", 0, (bitlash_function) timer1);
      addBitlashFunction("blinkie", -1, (bitlash_function) blinkie);

void loop(void) {

its still not taking my hex values and displaying what i want bit its a start.
2  Forum 2005-2010 (read only) / Syntax & Programs / Creating a serial protocol on: February 20, 2010, 04:35:22 pm
Hi Everybody!  smiley

I found the following code on todbots blog:

char* cmdbuf; char c; int i;
 while( Serial.available() && c!= '\n' ) {  // buffer up a line
   c =;
   cmdbuf[i++] = c;

 int i = 0;
 while( cmdbuf[++i] != ' ' ) ; // find first space
 cmdbuf[i] = 0;          // null terminate command
 char* cmd = cmdbuf;     //
 int cmdlen = i;         // length of cmd

 int args[5], a;         // five args max, 'a' is arg counter
 char* s; char* argbuf = cmdbuf+cmdlen+1;
 while( (s = strtok(argbuf, " ")) != NULL && a < 5 ) {
   argbuf = NULL;
   args[a++] = (byte)strtol(s,NULL,0); // parse hex or decimal arg
 int argcnt = a;         // number of args read

I am trying to make a simple program where I can turn on or off 8 different LEDs based on input like "led 1 off". This code is a little out of my league, could someone who understands this give me some sort of working example? thanks in advance!
Pages: [1]