X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;ds=sidebyside;f=firmware%2Flib%2Fcommand.c;h=6388c643b366a82b2f1384c2b0e6b1960098d944;hb=0d6f0d8ae390c2ae59cf92d6f37f363aa2e68c80;hp=8b83d475491e405be88ca74a54536be7d4d85a15;hpb=ac438c880b976512eb377806fa0f470bf390fdde;p=goodfet diff --git a/firmware/lib/command.c b/firmware/lib/command.c index 8b83d47..6388c64 100644 --- a/firmware/lib/command.c +++ b/firmware/lib/command.c @@ -66,7 +66,7 @@ void txhead(unsigned char app, void txdata(unsigned char app, unsigned char verb, unsigned long len){ - unsigned int i=0; + unsigned long i=0; if(silent) return; txhead(app,verb,len); @@ -140,17 +140,22 @@ void msdelay(unsigned int ms){ delaying slightly longer than requested. */ void prep_timer() { + #ifdef MSP430 BCSCTL2 = 0x00; /* In particular, use DCOCLK as SMCLK source with divider 1. Hence, Timer B ticks with system clock at 16 MHz. */ TBCTL = 0x0204; /* Driven by SMCLK; disable Timer B interrupts; reset timer in case it was previously in use */ + #else + #warning "prep_timer() unimplemented for this platform." + #endif } - +#if (platform != tilaunchpad) //! Delay for specified number of milliseconds (given 16 MHz clock) void delay_ms( unsigned int ms ) { + #ifdef MSP430 // 16000 ticks = 1 ms TBCTL |= 0x20; // Start timer! while (ms--) { @@ -159,11 +164,15 @@ void delay_ms( unsigned int ms ) TBCTL = 0x0224; } TBCTL = 0x0204; // Reset Timer B, till next time + #else + debugstr("delay_ms unimplemented"); + #endif } //! Delay for specified number of microseconds (given 16 MHz clock) void delay_us( unsigned int us ) { + #ifdef MSP430 // 16 ticks = 1 us TBCTL |= 0x20; // Start timer! while (us--) { @@ -172,13 +181,21 @@ void delay_us( unsigned int us ) TBCTL = 0x0224; } TBCTL = 0x0204; // Reset Timer B, till next time + #else + debugstr("delay_us unimplemented"); + #endif } //! Delay for specified number of clock ticks (16 MHz clock implies 62.5 ns per tick). void delay_ticks( unsigned int num_ticks ) { + #ifdef MSP430 TBCTL |= 0x20; // Start timer while (TBR < num_ticks) asm( "nop" ); TBCTL = 0x0204; // Reset Timer B, till next time + #else + debugstr("delay_ticks unimplemented"); + #endif } +#endif