mirror of https://github.com/ArduPilot/ardupilot
preparing for DIP switch functions
git-svn-id: https://arducopter.googlecode.com/svn/trunk@686 f9c3cf11-9bcb-44bc-f272-b75c42450872
This commit is contained in:
parent
84697f4111
commit
669bde1e45
|
@ -205,6 +205,12 @@ int control_pitch;
|
||||||
int control_yaw;
|
int control_yaw;
|
||||||
//float K_aux;
|
//float K_aux;
|
||||||
|
|
||||||
|
|
||||||
|
boolean SW_DIP1; // closest to SW2 slider switch
|
||||||
|
boolean SW_DIP2;
|
||||||
|
boolean SW_DIP3;
|
||||||
|
boolean SW_DIP4; // closest to header pins
|
||||||
|
|
||||||
// Attitude PID controls
|
// Attitude PID controls
|
||||||
float roll_I=0;
|
float roll_I=0;
|
||||||
float roll_D;
|
float roll_D;
|
||||||
|
|
|
@ -111,4 +111,24 @@ int channel_filter(int ch, int ch_old)
|
||||||
}
|
}
|
||||||
return((ch + ch_old) >> 1); // Small filtering
|
return((ch + ch_old) >> 1); // Small filtering
|
||||||
//return(ch);
|
//return(ch);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Special APM PinMode settings and others
|
||||||
|
void APMPinMode(volatile unsigned char &Port, byte Pin, boolean Set)
|
||||||
|
{
|
||||||
|
if (Set) {
|
||||||
|
Port |= (1 << Pin);
|
||||||
|
} else {
|
||||||
|
Port &= ~(1 << Pin);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean APMPinRead(volatile unsigned char &Port, byte Pin)
|
||||||
|
{
|
||||||
|
if(Port & (1 << Pin))
|
||||||
|
return 1;
|
||||||
|
else
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -41,6 +41,13 @@ void APM_Init() {
|
||||||
pinMode(LED_Green,OUTPUT); //Green LED C (PC0)
|
pinMode(LED_Green,OUTPUT); //Green LED C (PC0)
|
||||||
pinMode(SW1_pin,INPUT); //Switch SW1 (pin PG0)
|
pinMode(SW1_pin,INPUT); //Switch SW1 (pin PG0)
|
||||||
pinMode(RELE_pin,OUTPUT); // Rele output
|
pinMode(RELE_pin,OUTPUT); // Rele output
|
||||||
|
|
||||||
|
APMPinMode(DDRE,7,INPUT); //DIP1
|
||||||
|
APMPinMode(DDRE,6,INPUT); //DIP2
|
||||||
|
APMPinMode(DDRL,6,INPUT); //DIP3
|
||||||
|
APMPinMode(DDRL,7,INPUT); //DIP4
|
||||||
|
|
||||||
|
|
||||||
digitalWrite(RELE_pin,LOW);
|
digitalWrite(RELE_pin,LOW);
|
||||||
|
|
||||||
APM_RC.Init(); // APM Radio initialization
|
APM_RC.Init(); // APM Radio initialization
|
||||||
|
@ -122,6 +129,22 @@ void APM_Init() {
|
||||||
|
|
||||||
delay(1000);
|
delay(1000);
|
||||||
|
|
||||||
|
// Read DIP Switches and other important values. DIP switches needs special functions to
|
||||||
|
// read due they are not defined as normal pins like other GPIO's are.
|
||||||
|
SW_DIP1 = APMPinRead(PINE, 7);
|
||||||
|
SW_DIP2 = APMPinRead(PINE, 6);
|
||||||
|
SW_DIP3 = APMPinRead(PINL, 6);
|
||||||
|
SW_DIP4 = APMPinRead(PINL, 7);
|
||||||
|
|
||||||
|
/* Works, tested 18-10-10 JP
|
||||||
|
if(SW_DIP1) {
|
||||||
|
SerPrln("+ mode");
|
||||||
|
} else {
|
||||||
|
SerPrln("x mode");
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
DataFlash.StartWrite(1); // Start a write session on page 1
|
DataFlash.StartWrite(1); // Start a write session on page 1
|
||||||
//timer = millis();
|
//timer = millis();
|
||||||
//tlmTimer = millis();
|
//tlmTimer = millis();
|
||||||
|
|
Loading…
Reference in New Issue