X-Git-Url: http://git.rot13.org/?p=goodfet;a=blobdiff_plain;f=firmware%2Flib%2Fcommand.c;h=8f9501a61841cf2ea0a4c0110f9b92eeb256fd53;hp=1de6f0a682ec0587304165bb0a517d1a6c7972a3;hb=757884d51cc6b119a3b1773873c446926b26011d;hpb=dbcedaa279472080a2585e959a3146f3c5859556 diff --git a/firmware/lib/command.c b/firmware/lib/command.c index 1de6f0a..8f9501a 100644 --- a/firmware/lib/command.c +++ b/firmware/lib/command.c @@ -32,24 +32,12 @@ void debugstr(const char *str){ //! brief Debug a hex word string. void debughex(u16 v) { - unsigned char a[7]; - a[0]='0'; a[1]='x'; - - a[2]=0xf&(v>>12); - a[2]+=(a[2]>9)?('a'-10):'0'; - - a[3]=0xf&(v>>8); - a[3]+=(a[3]>9)?('a'-10):'0'; - - a[4]=0xf&(v>>4); - a[4]+=(a[4]>9)?('a'-10):'0'; - - a[5]=0xf&(v>>0); - a[5]+=(a[5]>9)?('a'-10):'0'; - - a[6]=0; + debugbytes((void *)&v, 2); +} - txstring(0xFF,0xFF,a); +//! brief Debug a hex word string. +void debughex32(u32 v) { + debugbytes((void *)&v, 4); } /*! \brief Transmit debug bytes. @@ -152,45 +140,45 @@ void msdelay(unsigned int ms){ delaying slightly longer than requested. */ void prep_timer() { - BCSCTL2 = 0x00; /* In particular, use DCOCLK as SMCLK source with - divider 1. Hence, Timer A ticks with system - clock at 16 MHz. */ + BCSCTL2 = 0x00; /* In particular, use DCOCLK as SMCLK source with + divider 1. Hence, Timer A ticks with system + clock at 16 MHz. */ - TACTL = 0x0204; /* Driven by SMCLK; disable Timer A interrupts; - reset timer in case it was previously in use */ + TACTL = 0x0204; /* Driven by SMCLK; disable Timer A interrupts; + reset timer in case it was previously in use */ } //! Delay for specified number of milliseconds (given 16 MHz clock) void delay_ms( unsigned int ms ) { - // 16000 ticks = 1 ms - TACTL |= 0x20; // Start timer! - while (ms--) { - while (TAR < 16000) - asm( "nop" ); - TACTL = 0x0224; - } - TACTL = 0x0204; // Reset Timer A, till next time + // 16000 ticks = 1 ms + TACTL |= 0x20; // Start timer! + while (ms--) { + while (TAR < 16000) + asm( "nop" ); + TACTL = 0x0224; + } + TACTL = 0x0204; // Reset Timer A, till next time } //! Delay for specified number of microseconds (given 16 MHz clock) void delay_us( unsigned int us ) { - // 16 ticks = 1 us - TACTL |= 0x20; // Start timer! - while (us--) { - while (TAR < 16) - asm( "nop" ); - TACTL = 0x0224; - } - TACTL = 0x0204; // Reset Timer A, till next time + // 16 ticks = 1 us + TACTL |= 0x20; // Start timer! + while (us--) { + while (TAR < 16) + asm( "nop" ); + TACTL = 0x0224; + } + TACTL = 0x0204; // Reset Timer A, till next time } //! Delay for specified number of clock ticks (16 MHz clock implies 62.5 ns per tick). void delay_ticks( unsigned int num_ticks ) { - TACTL |= 0x20; // Start timer - while (TAR < num_ticks) - asm( "nop" ); - TACTL = 0x0204; // Reset Timer A, till next time + TACTL |= 0x20; // Start timer + while (TAR < num_ticks) + asm( "nop" ); + TACTL = 0x0204; // Reset Timer A, till next time }