projects:ukhas_glider_project:code
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
projects:ukhas_glider_project:code [2007/12/06 18:12] – Zagi code laurenceb | projects:ukhas_glider_project:code [2008/07/19 23:33] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 22: | Line 22: | ||
#include < | #include < | ||
#include " | #include " | ||
+ | #include " | ||
#define altitudelimit 4000 //4km cutdown | #define altitudelimit 4000 //4km cutdown | ||
#define timelimit 600 //10 minutes | #define timelimit 600 //10 minutes | ||
#define Deg2rad M_PI/180 | #define Deg2rad M_PI/180 | ||
#define Rad2deg 180/M_PI | #define Rad2deg 180/M_PI | ||
+ | #define tweakingfactor 0.002 | ||
+ | #define batteryinput 4 | ||
+ | #define batteryfactor 8/1024 | ||
void wiggleservo(void); | void wiggleservo(void); | ||
void cutdown(char channel, | void cutdown(char channel, | ||
void updategpsdata(void); | void updategpsdata(void); | ||
+ | char *datastring(float k, float Target, attitude_type *ourattitude); | ||
+ | float getbatteryvoltage(void); | ||
u08 cutdownrulecheck(void); | u08 cutdownrulecheck(void); | ||
+ | u08 checksum(char *c_buf); | ||
char EEMEM windeast[1020]; | char EEMEM windeast[1020]; | ||
char EEMEM windnorth[1020]; | char EEMEM windnorth[1020]; | ||
Line 37: | Line 44: | ||
float targeteast; | float targeteast; | ||
int time; //time | int time; //time | ||
+ | |||
+ | |||
+ | char *datastring(float k, float Target, attitude_type *ourattitude) | ||
+ | { | ||
+ | static char outputbuffer[80]; | ||
+ | char longitude; | ||
+ | char latitude; | ||
+ | |||
+ | if (gpsGetInfo()-> | ||
+ | { | ||
+ | | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | | ||
+ | } | ||
+ | if (gpsGetInfo()-> | ||
+ | { | ||
+ | | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | | ||
+ | } | ||
+ | sprintf(outputbuffer," | ||
+ | latitude, | ||
+ | ourattitude-> | ||
+ | sprintf(outputbuffer," | ||
+ | return (outputbuffer); | ||
+ | } | ||
+ | |||
+ | |||
+ | float getbatteryvoltage() | ||
+ | { | ||
+ | return (a2dConvert10bit(batteryinput)*batteryfactor); | ||
+ | } | ||
+ | |||
+ | u08 checksum(char *c_buf) | ||
+ | { | ||
+ | u08 i; | ||
+ | u08 sum=0; | ||
+ | u08 size=strlen(c_buf); | ||
+ | for(i=0 ; i<size ; i++, | ||
+ | { | ||
+ | sum += *c_buf; | ||
+ | } | ||
+ | return(sum); | ||
+ | } | ||
+ | |||
void wiggleservos() | void wiggleservos() | ||
Line 95: | Line 151: | ||
|| gpsGetInfo()-> | || gpsGetInfo()-> | ||
{ | { | ||
- | nmeaProcess(Rxbuff0); | + | nmeaProcess(Rxbuff0); |
- | updatecounterLLA=gpsGetInfo()-> | + | |
- | updatecounterENU=gpsGetInfo()-> | + | |
- | updatecounterHS=gpsGetInfo()-> | + | |
- | | + | |
} | } | ||
Line 202: | Line 258: | ||
PORTG|=(1<< | PORTG|=(1<< | ||
} | } | ||
- | ; //descent code | + | tweakfactor=K*tweakingfactor; |
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | { | ||
+ | enablegroundcontrol(); | ||
+ | } | ||
+ | | ||
+ | if (bit_is_set(PIND, | ||
+ | | ||
+ | | ||
+ | | ||
} | } | ||
Line 214: | Line 282: | ||
<code c> | <code c> | ||
- | // this is under construction | + | // initialisation code |
// - Laurenceb | // - Laurenceb | ||
#include " | #include " | ||
Line 253: | Line 321: | ||
{ | { | ||
char teststr[15]; | char teststr[15]; | ||
- | sbi(DDRD, | + | sbi(DDRD, |
sbi(DDRB, | sbi(DDRB, | ||
sbi(DDRB, | sbi(DDRB, | ||
+ | sbi(DDRG, | ||
+ | sbi(DDRG, | ||
+ | sbi(DDRD, | ||
+ | sbi(DDRD, | ||
+ | sbi(PORTD, | ||
uartInit(); | uartInit(); | ||
uartSetBaudRate(0, | uartSetBaudRate(0, | ||
Line 310: | Line 383: | ||
printf(" | printf(" | ||
} | } | ||
+ | |||
Line 531: | Line 605: | ||
} | } | ||
pwmpitch=(pitchrunningaverage*PP)+(deltapitchrunningaverage*DP)+(pitchintegral*IP); | pwmpitch=(pitchrunningaverage*PP)+(deltapitchrunningaverage*DP)+(pitchintegral*IP); | ||
- | pwmroll=(rollrunningaverage*PR)+(rollrunningaverage*DR)+(rollintegral*IR)+tweakfactor; | + | pwmroll=(rollrunningaverage*PR)+(deltarollrunningaverage*DR)+(rollintegral*IR)+tweakfactor; |
servoa=trimAgain*(pwmpitch+pwmroll)+trimAbias; | servoa=trimAgain*(pwmpitch+pwmroll)+trimAbias; | ||
if (servoa> | if (servoa> |
projects/ukhas_glider_project/code.1196964778.txt.gz · Last modified: 2008/07/19 23:32 (external edit)