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) // return: o referinta catre obiect si la prima apelare este initializat obiectul. // param: void Timer& instance = Timer::get_instance();
// uint32_t micros(void) // return: un unsigned int ce reprezinta timpul in microsecunde de la primul apel Timer::get_instance() // param: void auto elapsed = instance.micros();
// uint32_t millis() // return: un unsigned int ce reprezinta timpul in milisecunde de la primul apel Timer::get_instance() // param: void auto elapsed = instance.millis();
// void delayMicroseconds(uint32_t t) // return: void // param: un unsigned int care specifica durata in microsecunde de asteptare // misc: functie blocanta instance.delayMicroseconds(500000U); // 0.5 sec
// void delay(uint32_t t) // return: void // param: un unsigned int care specifica durata in milisecunde de asteptare // misc: functie blocanta instance.delay(1000); // 1.0 sec
// uint32_t add_irq_handler(void (*time_IRQn_handler)(void)) // return: 0 for success, -1 for error // param: un pointer la o functie ce intoarce void si accepta void ca parametru // misc: adauga functii in vectorul "irq_handlers" ce vor fi apelate la intreruperea de ceas (0.2 sec) instance.add_irq_handler(function);
// void call_irq_handlers() // return: void // param: void // misc: 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