-
Home
-
doc
-
support
-
driver
-
sysclock
sysclock.h
View on Github
/**
* @file sysclock.h
* @author Sebastien CAUX (sebcaux)
* @copyright Robotips 2016
*
* @date April 11, 2016, 05:12 PM
*
* @brief System clock support for udevkit
*/
#ifndef SYSCLOCK_H
#define SYSCLOCK_H
#include <stdint.h>
#include <driver/device.h>
// ======= specific include =======
#if defined(ARCHI_pic24ep) || defined(ARCHI_pic24f) || defined(ARCHI_pic24fj) \
|| defined(ARCHI_pic24hj) || defined(ARCHI_dspic33fj) || defined(ARCHI_dspic33ep) \
|| defined(ARCHI_dspic33ev)
#include "sysclock_pic24_dspic33.h"
#elif defined(ARCHI_dspic30f)
#include "sysclock_dspic30f.h"
#elif defined(ARCHI_dspic33ch) || defined(ARCHI_dspic33ck)
#include "sysclock_dspic33c.h"
#elif defined(ARCHI_pic32mx)
#include "sysclock_pic32mx.h"
#elif defined(ARCHI_pic32mm)
#include "sysclock_pic32mm.h"
#elif defined(ARCHI_pic32mzda) || defined(ARCHI_pic32mzec) || defined(ARCHI_pic32mzef) \
|| defined(ARCHI_pic32mk)
#include "sysclock_pic32mz_mk.h"
#else
typedef int SYSCLOCK_CLOCK;
typedef int SYSCLOCK_SOURCE;
#error Unsuported ARCHI for sysclock driver.
#endif
int sysclock_setClock(uint32_t freq);
// new API
uint32_t sysclock_periphFreq(SYSCLOCK_CLOCK busClock);
int sysclock_setClockDiv(SYSCLOCK_CLOCK busClock, uint16_t div);
// source clock
int32_t sysclock_sourceFreq(SYSCLOCK_SOURCE source);
int sysclock_setSourceFreq(SYSCLOCK_SOURCE source, uint32_t freq);
SYSCLOCK_SOURCE sysclock_source();
int sysclock_switchSourceTo(SYSCLOCK_SOURCE source);
#endif // SYSCLOCK_H