My project file is called Robot.c. The tutorial said I could name it something else as long as I changed the line in the makefile.
I did not change or delete anything else in the hardware.c or what was placed in the Robot.c file. The only file I changed was the control.c file. Right now this is what is in each file:
Robot.c/****************************************************************************
*
* Copyright (c) 2008
www.societyofrobots.com* (please link back if you use this code!)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* Alternatively, this software may be distributed under the terms of BSD
* license.
*
****************************************************************************/
//SoR Include
#include "SoR_Utils.h" //includes all the technical stuff
#include "hardware.c" //declare hardware variables and ports
//#include "CMUcam.c" //not yet written
#include "sensors.c" //sensor libraries for sonar, sharp IR, etc.
#include "misc.c" //includes libraries for various hardware and other useful stuff
#include "axon_DAQ.c" //use the Axon like a data acquisition device
//#include "Blackfin_Axon.c" //files for Blackfin Robot camera
#include "control.c" //your code goes in here
//#include "servo_controller.c" //Axon servo controller
//#include "axon_test.c" //include this is doing a function test for the Axon
//#include "axon_oscope_test.c" //include this is doing a function test for the Axon
int main(void)
{
//declare variables here
int i=0;//useless variable
int j=0;//useless variable
//add 1.7s delay for potential power issues
delay_cycles(65535);
delay_cycles(65535);
delay_cycles(65535);
delay_cycles(65535);
delay_cycles(65535);
delay_cycles(65535);
delay_cycles(65535);
/****************INITIALIZATIONS*******************/
//other stuff Im experimenting with for SoR
uartInit(); // initialize the UART (serial port)
uartSetBaudRate(0, 38400); // set UARTE speed, for Bluetooth
uartSetBaudRate(1, 115200); // set UARTD speed, for USB connection, up to 500k, try 115200 if it doesn't work
uartSetBaudRate(2, 38400); // set UARTH speed
uartSetBaudRate(3, 38400); // set UARTJ speed, for Blackfin
//G=Ground, T=Tx (connect to external Rx), R=Rx (connect to external Tx)
rprintfInit(uart1SendByte);// initialize rprintf system and configure uart1 (USB) for rprintf
configure_ports(); // configure which ports are analog, digital, etc.
LED_on();
rprintf("\r\nSystem Warmed Up");
// initialize the timer system
init_timer0(TIMER_CLK_1024);
init_timer1(TIMER_CLK_64);
init_timer2(TIMER2_CLK_64);
init_timer3(TIMER_CLK_64);
init_timer4(TIMER_CLK_64);
init_timer5(TIMER_CLK_64);
a2dInit(); // initialize analog to digital converter (ADC)
a2dSetPrescaler(ADC_PRESCALE_DIV32); // configure ADC scaling
a2dSetReference(ADC_REFERENCE_AVCC); // configure ADC reference voltage
//let system stabelize for X time
for(i=0;i<16;i++)
{
j=a2dConvert8bit(i);//read each ADC once to get it working accurately
delay_cycles(5000); //keep LED on long enough to see Axon reseting
rprintf(".");
}
LED_off();
rprintf("Initialization Complete \r\n");
/**************************************************/
//test programs
//while(1)
//{
//test_oscope();
//test();
//while(!button_pressed());
//PWM_Init_timer3_E3(
;
//PWM_timer3_On_E3();
//PWM_timer3_Set_E3(30);
//axon_DAQ();//activate the slow DAQ software (data acquisition), all 16 sensors, ~10ms resolution
//axon_DAQ_fast();//activate the super fast DAQ, only ADC pin 9, ~1ms resolution
//}
/*********ADD YOUR CODE BELOW THIS LINE **********/
//wait until user pushes button
while(!button_pressed());
//reset all timers to zero
reset_timer0();
reset_timer1();
reset_timer2();
reset_timer3();
reset_timer4();
reset_timer5();
while(1)
{
control();//uncomment this for your code (and use control.c only to program)
//servo_controller();
/*
PWM_Init_timer1_LED(
;
PWM_timer1_On_LED();
while(1)
{
for(i=90;i<255;i++)
{
PWM_timer1_Set_LED(i);
delay_ms(10);
}
for(i=255;i>90;i--)
{
PWM_timer1_Set_LED(i);
delay_ms(10);
}
rprintf("stuff\r\n");
}
rprintf("Initializing timer2 for PWM\r\n");
PWM_Init_timer1_LED(
;
PWM_Init_timer2_H6(
;//9 doesn't work
PWM_Init_timer3_E3(
;
PWM_Init_timer3_E4(
;
PWM_Init_timer3_E5(
;
delay_ms(100);
rprintf("2");
//PWM_Init_timer4_H3(10);
delay_ms(100);
rprintf("3");
//PWM_Init_timer4_H4(10);
delay_ms(100);
rprintf("4");
//PWM_Init_timer4_H5(10);
delay_ms(100);
rprintf("5");
rprintf("Turning on both PWM channels\r\n");
PWM_timer1_On_LED();
PWM_timer2_On_H6();
PWM_timer3_On_E3();
PWM_timer3_On_E4();
PWM_timer3_On_E5();
PWM_timer4_On_H3();
PWM_timer4_On_H4();
PWM_timer4_On_H5();
delay_ms(1000);
rprintf("Setting PWM to 1%% duty cycle\r\n");
PWM_timer1_Set_LED(1);
PWM_timer2_Set_H6(1);
PWM_timer3_Set_E3(1);
PWM_timer3_Set_E4(1);
PWM_timer3_Set_E5(1);
PWM_timer4_Set_H3(1);
PWM_timer4_Set_H4(1);
PWM_timer4_Set_H5(1);
delay_ms(1000);
rprintf("Setting PWM to 50%% duty cycle\r\n");
PWM_timer1_Set_LED(127);
PWM_timer2_Set_H6(127);
PWM_timer3_Set_E3(127);
PWM_timer3_Set_E4(127);
PWM_timer3_Set_E5(127);
PWM_timer4_Set_H3(127);
PWM_timer4_Set_H4(127);
PWM_timer4_Set_H5(127);
delay_ms(1000);
rprintf("Setting PWM to 99%% duty cycle\r\n");
PWM_timer1_Set_LED(254);
PWM_timer2_Set_H6(254);
PWM_timer3_Set_E3(254);
PWM_timer3_Set_E4(254);
PWM_timer3_Set_E5(254);
PWM_timer4_Set_H3(254);
PWM_timer4_Set_H4(254);
PWM_timer4_Set_H5(254);
delay_ms(1000);
rprintf("Turning off PWM\r\n");
PWM_timer1_Off_LED();
PWM_timer2_Off_H6();
PWM_timer3_Off_E3();
PWM_timer3_Off_E4();
PWM_timer3_Off_E5();
PWM_timer4_Off_H3();
PWM_timer4_Off_H4();
PWM_timer4_Off_H5();
delay_ms(1000);
*/
delay_cycles(100);//an optional small delay to prevent crazy oscillations
}
/*********ADD YOUR CODE ABOVE THIS LINE **********/
return 0;
}
----------------------------------------------------------------------------------------------------------------------------------------------------------
hardware.c/****************************************************************************
*
* Copyright (c) 2008
www.societyofrobots.com* (please link back if you use this code!)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* Alternatively, this software may be distributed under the terms of BSD
* license.
*
****************************************************************************/
//SoR Include
#include "SoR_Utils.h" //includes all the technical stuff
#include "hardware.c" //declare hardware variables and ports
//#include "CMUcam.c" //not yet written
#include "sensors.c" //sensor libraries for sonar, sharp IR, etc.
#include "misc.c" //includes libraries for various hardware and other useful stuff
#include "axon_DAQ.c" //use the Axon like a data acquisition device
//#include "Blackfin_Axon.c" //files for Blackfin Robot camera
#include "control.c" //your code goes in here
//#include "servo_controller.c" //Axon servo controller
//#include "axon_test.c" //include this is doing a function test for the Axon
//#include "axon_oscope_test.c" //include this is doing a function test for the Axon
int main(void)
{
//declare variables here
int i=0;//useless variable
int j=0;//useless variable
//add 1.7s delay for potential power issues
delay_cycles(65535);
delay_cycles(65535);
delay_cycles(65535);
delay_cycles(65535);
delay_cycles(65535);
delay_cycles(65535);
delay_cycles(65535);
/****************INITIALIZATIONS*******************/
//other stuff Im experimenting with for SoR
uartInit(); // initialize the UART (serial port)
uartSetBaudRate(0, 38400); // set UARTE speed, for Bluetooth
uartSetBaudRate(1, 115200); // set UARTD speed, for USB connection, up to 500k, try 115200 if it doesn't work
uartSetBaudRate(2, 38400); // set UARTH speed
uartSetBaudRate(3, 38400); // set UARTJ speed, for Blackfin
//G=Ground, T=Tx (connect to external Rx), R=Rx (connect to external Tx)
rprintfInit(uart1SendByte);// initialize rprintf system and configure uart1 (USB) for rprintf
configure_ports(); // configure which ports are analog, digital, etc.
LED_on();
rprintf("\r\nSystem Warmed Up");
// initialize the timer system
init_timer0(TIMER_CLK_1024);
init_timer1(TIMER_CLK_64);
init_timer2(TIMER2_CLK_64);
init_timer3(TIMER_CLK_64);
init_timer4(TIMER_CLK_64);
init_timer5(TIMER_CLK_64);
a2dInit(); // initialize analog to digital converter (ADC)
a2dSetPrescaler(ADC_PRESCALE_DIV32); // configure ADC scaling
a2dSetReference(ADC_REFERENCE_AVCC); // configure ADC reference voltage
//let system stabelize for X time
for(i=0;i<16;i++)
{
j=a2dConvert8bit(i);//read each ADC once to get it working accurately
delay_cycles(5000); //keep LED on long enough to see Axon reseting
rprintf(".");
}
LED_off();
rprintf("Initialization Complete \r\n");
/**************************************************/
//test programs
//while(1)
//{
//test_oscope();
//test();
//while(!button_pressed());
//PWM_Init_timer3_E3(
;
//PWM_timer3_On_E3();
//PWM_timer3_Set_E3(30);
//axon_DAQ();//activate the slow DAQ software (data acquisition), all 16 sensors, ~10ms resolution
//axon_DAQ_fast();//activate the super fast DAQ, only ADC pin 9, ~1ms resolution
//}
/*********ADD YOUR CODE BELOW THIS LINE **********/
//wait until user pushes button
while(!button_pressed());
//reset all timers to zero
reset_timer0();
reset_timer1();
reset_timer2();
reset_timer3();
reset_timer4();
reset_timer5();
while(1)
{
control();//uncomment this for your code (and use control.c only to program)
//servo_controller();
/*
PWM_Init_timer1_LED(
;
PWM_timer1_On_LED();
while(1)
{
for(i=90;i<255;i++)
{
PWM_timer1_Set_LED(i);
delay_ms(10);
}
for(i=255;i>90;i--)
{
PWM_timer1_Set_LED(i);
delay_ms(10);
}
rprintf("stuff\r\n");
}
rprintf("Initializing timer2 for PWM\r\n");
PWM_Init_timer1_LED(
;
PWM_Init_timer2_H6(
;//9 doesn't work
PWM_Init_timer3_E3(
;
PWM_Init_timer3_E4(
;
PWM_Init_timer3_E5(
;
delay_ms(100);
rprintf("2");
//PWM_Init_timer4_H3(10);
delay_ms(100);
rprintf("3");
//PWM_Init_timer4_H4(10);
delay_ms(100);
rprintf("4");
//PWM_Init_timer4_H5(10);
delay_ms(100);
rprintf("5");
rprintf("Turning on both PWM channels\r\n");
PWM_timer1_On_LED();
PWM_timer2_On_H6();
PWM_timer3_On_E3();
PWM_timer3_On_E4();
PWM_timer3_On_E5();
PWM_timer4_On_H3();
PWM_timer4_On_H4();
PWM_timer4_On_H5();
delay_ms(1000);
rprintf("Setting PWM to 1%% duty cycle\r\n");
PWM_timer1_Set_LED(1);
PWM_timer2_Set_H6(1);
PWM_timer3_Set_E3(1);
PWM_timer3_Set_E4(1);
PWM_timer3_Set_E5(1);
PWM_timer4_Set_H3(1);
PWM_timer4_Set_H4(1);
PWM_timer4_Set_H5(1);
delay_ms(1000);
rprintf("Setting PWM to 50%% duty cycle\r\n");
PWM_timer1_Set_LED(127);
PWM_timer2_Set_H6(127);
PWM_timer3_Set_E3(127);
PWM_timer3_Set_E4(127);
PWM_timer3_Set_E5(127);
PWM_timer4_Set_H3(127);
PWM_timer4_Set_H4(127);
PWM_timer4_Set_H5(127);
delay_ms(1000);
rprintf("Setting PWM to 99%% duty cycle\r\n");
PWM_timer1_Set_LED(254);
PWM_timer2_Set_H6(254);
PWM_timer3_Set_E3(254);
PWM_timer3_Set_E4(254);
PWM_timer3_Set_E5(254);
PWM_timer4_Set_H3(254);
PWM_timer4_Set_H4(254);
PWM_timer4_Set_H5(254);
delay_ms(1000);
rprintf("Turning off PWM\r\n");
PWM_timer1_Off_LED();
PWM_timer2_Off_H6();
PWM_timer3_Off_E3();
PWM_timer3_Off_E4();
PWM_timer3_Off_E5();
PWM_timer4_Off_H3();
PWM_timer4_Off_H4();
PWM_timer4_Off_H5();
delay_ms(1000);
*/
delay_cycles(100);//an optional small delay to prevent crazy oscillations
}
/*********ADD YOUR CODE ABOVE THIS LINE **********/
return 0;
}
----------------------------------------------------------------------------------------------------------------------------------------------------------------
control.cvoid control(void)
{
while(1)
{
LED_on(); //turn green LED on
delay_ms(1000);
LED_off(); //turn green LED off
delay_ms(1000);
}
}
--------------------------------------------------------------------------------------------------------------------------------------------------------
Am I supposed to highlight the Robot.c file and do the compile or highlight control.c or what?
??
No matter what I try (I tried both methods) it still gives me the same warnings as I noted in the post above and it still does not blink the L.E.D.
Also, if I'm not supposed to mess with the hardware.c file, why does it have a comment in it that says "Add your code below this line"?
I have 25 years of electronics / electrical experience why does programming have to be so confusing?
Sorry for the long post.
Thanks for your help.