Esempio n. 1
0
PowerOff::PowerOff(PinName pwrint_name, PinName request_name, PinName ready_name, PinName pwrkill_name, const std::vector<PinName>& led_names)
	: pwrint_(pwrint_name, DigitalIn::PullNone, DigitalIn::InterruptFalling)
	, request_(request_name, DigitalOut::OutputDefault, DigitalOut::PullDefault, 0)
	, ready_(ready_name, DigitalIn::PullNone, DigitalIn::InterruptFalling)
	, pwrkill_(pwrkill_name, DigitalOut::OutputDefault, DigitalOut::PullDefault, 1)
{
	for (auto name : led_names)
		leds_.push_back(DigitalOut(name));
	pwrint_.callback(this, &PowerOff::initiate);
	ready_.callback(this, &PowerOff::shutdown);
}
Esempio n. 2
0
#include "main.h"
#include "SevenSeg.h"

const char test1[8] = {0x40, 0x02, 0x01, 0x20, 0x40, 0x04, 0x08, 0x10}; 
const char test2[8] = {0x3F, 0x7D, 0x7E, 0x5F, 0x3F, 0x7B, 0x77, 0x6F}; 
const char test3[6] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20};

// Ticker for base timer
Ticker tick(TIM16);

// Array of digital out (segment)
DigitalOut segment[] = {DigitalOut(PA0), DigitalOut(PA1), DigitalOut(PA4), DigitalOut(PF5),
                        DigitalOut(PF4), DigitalOut(PA2), DigitalOut(PA3), DigitalOut(PA5)};

// Array of digital out (digit)
DigitalOut digit[] = {DigitalOut(PB0, GPIO_OType_OD), DigitalOut(PB1, GPIO_OType_OD),
											DigitalOut(PB2, GPIO_OType_OD), DigitalOut(PB10, GPIO_OType_OD),
											DigitalOut(PB11, GPIO_OType_OD), DigitalOut(PB12, GPIO_OType_OD)};

// One seven segment is composed of an array of segment and one digit pin
SevenSeg sevenSeg0(segment, &digit[0]);
SevenSeg sevenSeg1(segment, &digit[1]);
SevenSeg sevenSeg2(segment, &digit[2]);
SevenSeg sevenSeg3(segment, &digit[3]);
SevenSeg sevenSeg4(segment, &digit[4]);
SevenSeg sevenSeg5(segment, &digit[5]);
										
// Create group of seven segment
SevenSegGroup sevenSegGroup;

int delay = 0;
Esempio n. 3
0
#define START_TRANS 'B'
#define END_TRANS 0xFFFF1111

Serial pc(USBTX, USBRX); // tx, rx
DigitalOut led1(LED1);
DigitalOut led2(LED2);
DigitalOut led3(LED3);
DigitalOut led4(LED4);

DigitalIn goto_draw_height(p16);
DigitalIn troll_up(p15);
DigitalIn troll_down(p14);
DigitalIn start_pat(p13);

DigitalOut enablers[] = {DigitalOut(p27), DigitalOut(p28), DigitalOut(p29)};

volatile U08 serial_buffer[16];
volatile S32 sbuffer_index;

static F32 draw_z = MIN_Z + 0.6; // inches
bool pen_needs_reset = false;

Planner planner;

void serial_callback() {
    serial_buffer[sbuffer_index++] = pc.getc();
}

void startup_steppers() {
    enablers[0] = 0;
Esempio n. 4
0
#include "Xbee.h"
#include "CRC32.h"
#include "SendConfDataPck.h"
#include "RequiredMsgTypeDataPck.h"
#include "DataPckTypes.h"
#include "DataPckTypeBase.h"
#include "MessageResponceMapper.h"

const int CRCTypeSize = 4;
const int StartEndMarkerSize = 1;
const int ActualDataSize = CommTypes::DataPacketSize - CRCTypeSize;
const int DataSynchPckSize = 3;
const char SynchPck[] = "##\0";
DigitalOut heartBeat = DigitalOut(LED1); 
Xbee::Xbee(PinName tx, PinName rx, PinName rst, DebugLoggerBase* debugLogger, CommsStatus::CommsStatusStruct* commsStatus) : uartPort(tx,rx), rst(rst), test(LED1)
{
    this->waitingSendConf = false;
    this->uartPort.format(8, Serial::None, 1);
    this->uartPort.baud(9600);
    this->uartPort.rxBufferFlush();
    this->uartPort.txBufferFlush();
    
    this->expectedResponce = -1;
    this->lastMsgReceived = -1;
    //Configure receive buffer
    this->ResetReceiveBuffer();
    this->gotRespnce = false;
    this->isReading = false;
    this->msgReady = false;
    this->isSynch = false;
    this->commsStatus = commsStatus;
Esempio n. 5
0
const static float defaultMax = 128.0;
const static int attitudeFrequency = 100; // Attitude and Control Frequency in Hz
const static int remoteFrequency = 10; // Remote Read Frequency in Hz

volatile int attitudeFlag = 0; // Attitude Execution Flag
volatile int remoteFlag = 0;

int remoteError = 0;
int baseSpeed = 0;
int rollTarget = 0;
int pitchTarget = 0;
int yawTarget = 0;
int potLeft = 0;
int potRight = 0;

DigitalOut statusLED[] = { DigitalOut(LED1), DigitalOut(LED2), DigitalOut(LED3), DigitalOut(LED4) };
Serial pc(USBTX, USBRX);
Ticker ticker;
I2C i2c(p28, p27);

Gyro gyro(&i2c);
Acc acc(&i2c);
Attitude attitude(&gyro, &acc, attitudeFrequency);
Altitude altitude(&i2c);
Remote remote(p6, remoteChannels);
PID rollPID(defaultP, defaultI, defaultD, defaultMin, defaultMax);
PID pitchPID(defaultP, defaultI, defaultD, defaultMin, defaultMax);
Motor motor(&i2c);

template <typename T>
T map(T x, T in_min, T in_max, T out_min, T out_max) {
Esempio n. 6
0
void DigitalOutState(int mask)
{
	int i;
	for(i=0;i<8;i++)
		if(g_DigitalConfigMask & (1<<i)) DigitalOut(i,mask&(1<<i));
}
static void hal_io_init () {
    pinMode(pins.nss, OUTPUT);
    pinMode(pins.rxtx, OUTPUT);
    pinMode(pins.rst, OUTPUT);
    pinMode(pins.dio[0], INPUT);
    pinMode(pins.dio[1], INPUT);
    pinMode(pins.dio[2], INPUT);
}
#else
uint64_t clock_ms() { return us_ticker_read() / 1000; }

#ifdef TARGET_NUCLEO_F411RE
SPI device(SPI_MOSI, SPI_MISO, SPI_SCK); 

lmic_pinmap pins {
  /*pins.nss*/ DigitalOut(PB_6),
    /*pins.rxtx*/ DigitalOut(PC_1),
    /*pins.rst*/ DigitalInOut(PA_0, PIN_INPUT, PullNone, 1),
    {
      DigitalInOut(PA_10, PIN_INPUT, PullUp, 1),
	DigitalInOut(PB_3, PIN_INPUT, PullUp, 1),
	DigitalInOut(PB_5, PIN_INPUT, PullUp, 1),
	DigitalInOut(PB_4, PIN_INPUT, PullUp, 1),
	DigitalInOut(PA_9, PIN_INPUT, PullUp, 1),
	//DigitalInOut(PC_7, PIN_INPUT, PullUp, 1),
	}
};
#elif defined(TARGET_KL25Z)
SPI device(PTD2, PTD3, PTD1); 

lmic_pinmap pins {
Esempio n. 8
0
/*
 * Enter a hex number [0-9a-fA-F]; Decode it in 4-bit binary format and display them on 4 on board leds.
 *
 * What is the address of ledArr[0]?
 * What is the address of ch?
 *
 */

#include "mbed.h"

Serial pc(USBTX, USBRX); // tx, rx
DigitalOut ledArr[4] = {DigitalOut(LED1), DigitalOut(LED2), DigitalOut(LED3), DigitalOut(LED4)};
Serial uart(p9, p10);

#define dprintf uart.printf

void DisplayLed(int ch)
{
    int i=0;
    if(ch>='0' && ch<='9') ch-='0';
    else if(ch>='A' && ch<='F') { ch-='A'; ch+=10; }
    else if(ch>='a' && ch<='f') { ch-='a'; ch+=10; }
    else {ch=0;}
    for(i=0; i<4; i++) {
        if(ch& (1<<i)) {
            ledArr[i] = 1;
        }
        else {
            ledArr[i] = 0;
        }
    }
Esempio n. 9
-1
#include "mbed.h"
#include "rtos.h"

DigitalOut LEDs[4] = {
    DigitalOut(LED1), DigitalOut(LED2), DigitalOut(LED3), DigitalOut(LED4)
};

void blink(void const *n) {
    LEDs[(int)n] = !LEDs[(int)n];
}

int main(void) {
    RtosTimer led_1_timer(blink, osTimerPeriodic, (void *)0);
    RtosTimer led_2_timer(blink, osTimerPeriodic, (void *)1);
    RtosTimer led_3_timer(blink, osTimerPeriodic, (void *)2);
    RtosTimer led_4_timer(blink, osTimerPeriodic, (void *)3);
    
    led_1_timer.start(2000);
    led_2_timer.start(1000);
    led_3_timer.start(500);
    led_4_timer.start(250);
    
    Thread::wait(osWaitForever);
}