summaryrefslogtreecommitdiff
path: root/analog
diff options
context:
space:
mode:
authorGuillaume Chevillot2008-03-04 09:00:59 +0100
committerGuillaume Chevillot2008-03-04 09:00:59 +0100
commitf7aedcfbdba289952f4a46a9345938bdba7e110d (patch)
tree92251b9ed089ac5946c120216b2efa02204336b7 /analog
parente8cdb481e64750e3d123d0f44be3ebbc8fead066 (diff)
- Removed 'static' qualifier to 'main_loop'
- 'led_flash' function added to detect startup (thanks to Ni) - Temporary empty vectors for right side timer (timer2) added to prevent resets (right side code is not implmented yet)
Diffstat (limited to 'analog')
-rw-r--r--analog/motor-power-avr/src/main.c57
-rw-r--r--analog/motor-power-avr/src/mp_pwm_LR_.h4
-rw-r--r--analog/motor-power-avr/src/mp_pwm_L_.c2
3 files changed, 53 insertions, 10 deletions
diff --git a/analog/motor-power-avr/src/main.c b/analog/motor-power-avr/src/main.c
index a691c6e4..b5e24028 100644
--- a/analog/motor-power-avr/src/main.c
+++ b/analog/motor-power-avr/src/main.c
@@ -72,8 +72,10 @@ uint8_t curLim_stat_cpt, curLim_stat_period;
/* +AutoDec */
/** Main loop. */
-static void
-main_loop (void);
+void main_loop (void);
+
+/** Just do a short flash on LEDs */
+void led_flash(void);
/* -AutoDec */
@@ -82,6 +84,11 @@ int
main (int argc, char **argv)
{
avr_init (argc, argv);
+
+ // Show that starts
+ led_flash();
+
+ DDRB |= 0x0c; //--
/* Pull-ups. */
//PORTA = 0xff;
@@ -93,22 +100,50 @@ main (int argc, char **argv)
envTest_period = 200;
proto_send0 ('z');
sei ();
+
+ // Background "task"
while (1)
- main_loop ();
+ main_loop ();
+
return 0;
}
+/** Just do a short flash on LEDs */
+void
+led_flash(void)
+{
+ uint8_t ddrb_backup, portb_backup;
+
+ // Save previous state
+ ddrb_backup = DDRB;
+ portb_backup = PORTB;
+
+ // Light up LEDs
+ DDRB = 0x0f;
+ PORTB = 0x0f;
+
+ // Delay 0.5s
+ utils_delay(0.5);
+
+ // Restore previous state
+ PORTB = portb_backup,
+ DDRB = ddrb_backup;
+
+ return;
+}
+
/** Main loop. */
-static void
+void
main_loop (void)
{
/* Uart */
if (uart0_poll ())
- proto_accept (uart0_getc ());
+ proto_accept (uart0_getc ());
/* Counter for launching environemental tests */
if (!(envTest_cpt --)) {
- envTest_cpt = envTest_period;
+ envTest_cpt = envTest_period;
+
launch_envTest ();
curLim_temp = get_curLim_temp (temperature);
curLim_bat= get_curLim_bat (battery);
@@ -219,3 +254,13 @@ proto_send (cmd, size, args);
#undef c
}
+/** Defines empty vector for timer 2 until R pwm file exists */
+
+//--
+// To remove when R side file will be generated
+EMPTY_INTERRUPT(R_OVF_vect)
+
+//--
+// To remove when R side file will be generated
+EMPTY_INTERRUPT(R_COMP_vect)
+
diff --git a/analog/motor-power-avr/src/mp_pwm_LR_.h b/analog/motor-power-avr/src/mp_pwm_LR_.h
index 999ecd67..85da1fec 100644
--- a/analog/motor-power-avr/src/mp_pwm_LR_.h
+++ b/analog/motor-power-avr/src/mp_pwm_LR_.h
@@ -102,11 +102,11 @@
// for 57.21kHz : prescaler = 0 : CSx2:0 = 0x01
// for 7.68kHz : prescaler = 8 : CSx2:0 = 0x02
#define TCCR_LR_CFG (regv (FOC0, WGM00, COM01, COM00, WGM01, CS02, CS01, CS00, \
- 0, 0, 0, 0, 0, 0, 1, 0))
+ 0, 0, 0, 0, 0, 0, 1, 0))
// timer interrupts configuration
#define TIMSK_LR_CFG (regv (OCIE2, TOIE2, TICIE1, OCIE1A, OCIE1B, TOIE1, OCIE0, TOIE0, \
- 1, 1, 0, 0, 0, 0, 1, 1))
+ 1, 1, 0, 0, 0, 0, 1, 1))
// PWM max, min, and offset values
#define PWM_MIN_LR_ 0x10
diff --git a/analog/motor-power-avr/src/mp_pwm_L_.c b/analog/motor-power-avr/src/mp_pwm_L_.c
index 1eb04b71..e46398f8 100644
--- a/analog/motor-power-avr/src/mp_pwm_L_.c
+++ b/analog/motor-power-avr/src/mp_pwm_L_.c
@@ -147,7 +147,6 @@ ISR(L_COMP_vect) {
}
}
-
// overcurrent detected by comparators
ISR(ILIM_L_vect) {
_L_AL_0;
@@ -198,4 +197,3 @@ void start_motor_L_ (uint8_t pwmspeed, uint8_t direction) {
void stop_motor_L_ (void) {
state_L_ = CMD_STATE_HIGH_Z;
}
-