This is an old revision of the document!
Autor:
Un API pentru a folosi placa ARC cat mai usor. La aceasta se pot connecta 2 encodere, 2 servouri, 2 motoare DC si 2 camere Pixy2. API-ul creat ofera control asupra servourilor; control direct asupra %dc motoarelor sau se poate specifica un rpm daca se doteaza cu encodere prin folosirea unui PID; API-ul pentru camera Pixy2 a fost portat pe acest uC.
Diagrama software:
TO_DO: Schimba imaginea cu cea mai noua versiune, fa OCW-ul sa vada ultima versiune si sa o ignore pe prima
Diagrama hardware:
Componente:
Metode:
Timer& get_instance(void)
Returneaza o referinta catre obiect si la prima apelare este initializat obiectul.
Timer& instance = Timer::get_instance();
uint32_t micros(void)
Returneaza un unsigned int ce reprezinta timpul in microsecunde de la primul apel Timer::get_instance().
auto elapsed = instance.micros();
uint32_t millis()
Returneaza un unsigned int ce reprezinta timpul in milisecunde de la primul apel Timer::get_instance().
auto elapsed = instance.millis();
void delayMicroseconds(uint32_t t)
Functie blocanta ce asteapta 't' microsecunde.
instance.delayMicroseconds(500000U); // 0.5 sec
void delay(uint32_t t)
Functie blocanta ce asteapta 't' milisecunde.
instance.delay(1000); // 1.0 sec
uint32_t add_irq_handler(void (*time_IRQn_handler)(void))
Returneaza 0 pentru success si -1 in caz de eroare.
Primeste un pointer la o functie, ce intoarce void si accepta void ca parametru, si o adauga in vectorul “irq_handlers” ce vor fi apelate la intreruperea de ceas (0.2 sec).
instance.add_irq_handler(function);
void call_irq_handlers()
Metoda apelata de rutina de tratare a intreruperii de ceas (0.2 sec) pentru a executa toate functiile din vectorul “irq_handlers”
instance.call_irq_handlers();
TODO
TODO
TODO
TODO
TODO