2014 Eurobot fork
Dependencies: mbed-rtos mbed QEI
Revision 84:00c799fd10a7, committed 2013-04-16
- Comitter:
- madcowswe
- Date:
- Tue Apr 16 10:05:58 2013 +0000
- Parent:
- 83:223186cd7531
- Child:
- 85:b0858346d838
- Commit message:
- 90s timer and armlock
Changed in this revision
--- a/Processes/AI/ai.cpp Mon Apr 15 22:28:07 2013 +0000
+++ b/Processes/AI/ai.cpp Tue Apr 16 10:05:58 2013 +0000
@@ -129,7 +129,7 @@
if(layer_to_push == top_layer)
{
ColourEnum colour_read = c_upper.getColour();
- if (colour_read==own_colour)
+ if ((colour_read==own_colour) && MotorControl::motorsenabled)
{
arm::upper_arm.go_down();
top_arm_up_timer.start(1200);
@@ -138,7 +138,7 @@
else
{
ColourEnum colour_read = c_lower.getColour();
- if (colour_read==own_colour || i==5 || i==7 || i==8 || i==10/*|| colour_read==WHITE*/)
+ if ((colour_read==own_colour || i==5 || i==7 || i==8 || i==10/*|| colour_read==WHITE*/) && MotorControl::motorsenabled)
{
arm::lower_arm.go_down();
bottom_arm_up_timer.start(1200);
@@ -227,22 +227,25 @@
switch(action[i])
{
case top_push_colour:
- if (c_upper.getColour()==own_colour)
+ if ((c_upper.getColour()==own_colour) && MotorControl::motorsenabled)
{
arm::upper_arm.go_down();
top_arm_up_timer.start(1200);
}
break;
case bot_push_colour:
- if (c_lower.getColour()==own_colour)
+ if ((c_lower.getColour()==own_colour) && MotorControl::motorsenabled)
{
arm::lower_arm.go_down();
bottom_arm_up_timer.start(1200);
}
break;
case bot_push_white:
- arm::lower_arm.go_down();
- bottom_arm_up_timer.start(1200);
+ if (MotorControl::motorsenabled)
+ {
+ arm::lower_arm.go_down();
+ bottom_arm_up_timer.start(1200);
+ }
break;
}
--- a/globals.h Mon Apr 15 22:28:07 2013 +0000 +++ b/globals.h Tue Apr 16 10:05:58 2013 +0000 @@ -85,6 +85,8 @@ const PinName P_START_CORD = p17; +const PinName P_BALLOON = p8; + //a type which is a pointer to a rtos thread function
--- a/main.cpp Mon Apr 15 22:28:07 2013 +0000
+++ b/main.cpp Tue Apr 16 10:05:58 2013 +0000
@@ -28,6 +28,13 @@
void printingtestthread2(void const*);
void feedbacktest();
+DigitalOut *balloon_ptr;
+
+void timeisup_isr(){
+ MotorControl::motorsenabled = 0;
+ *balloon_ptr = 0;
+}
+
int main()
{
@@ -82,12 +89,22 @@
Thread printingThread(Printing::printingloop, NULL, osPriorityLow, 2048);
+ //worry about starting
DigitalIn startcord(P_START_CORD);
startcord.mode(PullUp);
while(!startcord)
Thread::wait(50);
+
+ //worry about stopping
+ DigitalOut balloon(P_BALLOON);
+ balloon = 1;
+ balloon_ptr = &balloon;
+ Timeout timeout_90s;
+ timeout_90s.attach(timeisup_isr, 90);
+
aithread.signal_set(0x2); //Tell AI thread that its time to go
+
measureCPUidle(); //repurpose thread for idle measurement
/*
MotorControl::set_omegacmd(0);