X-Git-Url: http://git.rot13.org/?p=goodfet;a=blobdiff_plain;f=firmware%2Flib%2Fcommand.c;h=738fab6271e306385082da670b4a643e839fdaac;hp=9a9421ddfcb2c3277af36d0f1a295afd36ac4853;hb=3e4369fde16445c994da1b1efb332704aad0716d;hpb=a653ba1562dc444e4be791e22264a89a3c6b4a19 diff --git a/firmware/lib/command.c b/firmware/lib/command.c index 9a9421d..738fab6 100644 --- a/firmware/lib/command.c +++ b/firmware/lib/command.c @@ -1,7 +1,23 @@ +#include "command.h" +#include "platform.h" +#include + //! Different command handling functions. unsigned char cmddata[256]; +//! Transmit a string. +void txstring(unsigned char app, + unsigned char verb, + const char *str){ + unsigned char len=strlen(str); + serial_tx(app); + serial_tx(verb); + serial_tx(len); + while(len--) + serial_tx(*(str++)); +} + //! Transmit data. void txdata(unsigned char app, unsigned char verb, @@ -15,9 +31,21 @@ void txdata(unsigned char app, } } +//Be very careful changing delay(). +//It was chosen poorly by trial and error. //! Delay for a count. void delay(unsigned int count){ volatile unsigned int i=count; while(i--) asm("nop"); } +//! MSDelay +void msdelay(unsigned int ms){ + volatile unsigned int i,j; + i=100; + while(i--){ + j=ms; + while(j--) asm("nop"); + } + //Using TimerA might be cleaner. +}