projects
/
goodfet
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Bringing back MSP430X2 JTAG. Not there yet.
[goodfet]
/
firmware
/
lib
/
command.c
diff --git
a/firmware/lib/command.c
b/firmware/lib/command.c
index
571d0c0
..
8b83d47
100644
(file)
--- a/
firmware/lib/command.c
+++ b/
firmware/lib/command.c
@@
-1,6
+1,6
@@
/*! \file command.c
\author Travis Goodspeed
/*! \file command.c
\author Travis Goodspeed
- \brief These functions manage command interpretation.
+ \brief These functions manage command interpretation
and timing
.
*/
#include "command.h"
*/
#include "command.h"
@@
-131,8
+131,8
@@
void msdelay(unsigned int ms){
/* To better satisfy the somewhat odd timing requirements for
/* To better satisfy the somewhat odd timing requirements for
-
dsPIC33F/PIC24H
ICSP programming, and for better control of GoodFET
- timing more generally, here are a few delay routines that use Timer
A
.
+
PIC33F/24H/24F
ICSP programming, and for better control of GoodFET
+ timing more generally, here are a few delay routines that use Timer
B
.
Note that I wrote these referring only to the MSP430x2xx family
manual. Beware on MSP430x1xx chips. Further note that, assuming
Note that I wrote these referring only to the MSP430x2xx family
manual. Beware on MSP430x1xx chips. Further note that, assuming
@@
-140,45
+140,45
@@
void msdelay(unsigned int ms){
delaying slightly longer than requested. */
void prep_timer()
{
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 B
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 */
+
TBCTL = 0x0204; /* Driven by SMCLK; disable Timer B
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 )
{
}
//! Delay for specified number of milliseconds (given 16 MHz clock)
void delay_ms( unsigned int ms )
{
-
// 16000 ticks = 1 ms
-
TA
CTL |= 0x20; // Start timer!
-
while (ms--) {
-
while (TA
R < 16000)
-
asm( "nop" );
-
TA
CTL = 0x0224;
-
}
-
TACTL = 0x0204; // Reset Timer A
, till next time
+ // 16000 ticks = 1 ms
+
TB
CTL |= 0x20; // Start timer!
+ while (ms--) {
+
while (TB
R < 16000)
+ asm( "nop" );
+
TB
CTL = 0x0224;
+ }
+
TBCTL = 0x0204; // Reset Timer B
, till next time
}
//! Delay for specified number of microseconds (given 16 MHz clock)
void delay_us( unsigned int us )
{
}
//! Delay for specified number of microseconds (given 16 MHz clock)
void delay_us( unsigned int us )
{
-
// 16 ticks = 1 us
-
TA
CTL |= 0x20; // Start timer!
-
while (us--) {
-
while (TA
R < 16)
-
asm( "nop" );
-
TA
CTL = 0x0224;
-
}
-
TACTL = 0x0204; // Reset Timer A
, till next time
+ // 16 ticks = 1 us
+
TB
CTL |= 0x20; // Start timer!
+ while (us--) {
+
while (TB
R < 16)
+ asm( "nop" );
+
TB
CTL = 0x0224;
+ }
+
TBCTL = 0x0204; // Reset Timer B
, 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 )
{
}
//! Delay for specified number of clock ticks (16 MHz clock implies 62.5 ns per tick).
void delay_ticks( unsigned int num_ticks )
{
-
TA
CTL |= 0x20; // Start timer
-
while (TA
R < num_ticks)
-
asm( "nop" );
-
TACTL = 0x0204; // Reset Timer A
, till next time
+
TB
CTL |= 0x20; // Start timer
+
while (TB
R < num_ticks)
+ asm( "nop" );
+
TBCTL = 0x0204; // Reset Timer B
, till next time
}
}