Program Listing for File pins.h

Return to documentation for file (microsync/src/pins.h)

#pragma once

#include <asf.h>
#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include "globals.h"

uint32_t pin_name_to_ioport_id(const char* pin_name);

uint32_t pin_name_to_ioport_id(const uint32_t pin_name);

typedef struct {
    const char *pin_name;
    uint32_t pin_idx;
} pin_map_t;

extern const pin_map_t pin_map[];

class Pin {
private:
    bool level;
    bool active;
public:
    uint32_t pin_idx;
    Pin() : level(false), active(true) {};

    void set_level(bool level);

    void update();

    void toggle();

    void enable();

    void disable();

    bool is_active();
};

extern Pin pins[107];

void init_pins();