X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=firmware%2Flib%2Fcommand.c;h=dadffbd0e4fa0dd5a8fe28f3e4216a389e1e8d6a;hb=25829298efbada4ec4121745019cb68cca319402;hp=08a5cf7494c91bad21bf19d9534c132bb6c0bcee;hpb=3bf98a899ca8003835b69d949d299369a5d7a4f7;p=goodfet diff --git a/firmware/lib/command.c b/firmware/lib/command.c index 08a5cf7..dadffbd 100644 --- a/firmware/lib/command.c +++ b/firmware/lib/command.c @@ -1,10 +1,14 @@ +/*! \file command.c + \author Travis Goodspeed + \brief These functions manage command interpretation. +*/ + #include "command.h" #include "platform.h" #include -//! Different command handling functions. - unsigned char cmddata[256]; +unsigned char silent=0; //! Transmit a string. void txstring(unsigned char app, @@ -18,11 +22,24 @@ void txstring(unsigned char app, serial_tx(*(str++)); } +/*! \brief Transmit a debug string. + + Transmits a debugging string that is to be printed + out of line by the client. This is just for record-keeping; + it is not considered a proper reply to a query. + */ +void debugstr(const char *str){ + txstring(0xFF,0xFF,str); +} + + //! Transmit data. void txdata(unsigned char app, unsigned char verb, unsigned char len){ unsigned int i=0; + if(silent) + return; serial_tx(app); serial_tx(verb); serial_tx(len); @@ -31,8 +48,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. +}