flexPTP-basic/hw_port/ptp_port_tiva_tm4c1294.c
2023-04-27 08:23:40 +00:00

31 lines
937 B
C

#include "ptp_port_tiva_tm4c1295.h"
#include <stdint.h>
#include <stdbool.h>
#include "driverlib/emac.h"
#include "driverlib/gpio.h"
#include "inc/hw_memmap.h"
#include "driverlib/pin_map.h"
void ptphw_init(uint32_t increment, uint32_t addend)
{
// init clock
EMACTimestampConfigSet(EMAC0_BASE, (EMAC_TS_ALL_RX_FRAMES | EMAC_TS_DIGITAL_ROLLOVER | EMAC_TS_PROCESS_IPV4_UDP | EMAC_TS_ALL | EMAC_TS_PTP_VERSION_2 | EMAC_TS_UPDATE_FINE), // PTPv2 processing
increment);
EMACTimestampAddendSet(EMAC0_BASE, addend);
EMACTimestampEnable(EMAC0_BASE);
// init PPS output
GPIOPinTypePWM(GPIO_PORTG_AHB_BASE, GPIO_PIN_0);
GPIOPinConfigure(GPIO_PG0_EN0PPS);
EMACTimestampPPSSimpleModeSet(EMAC0_BASE, EMAC_PPS_1HZ);
}
void ptphw_gettime(TimestampU * pTime)
{
pTime->sec = 0;
pTime->nanosec = 0;
EMACTimestampSysTimeGet(EMAC0_BASE, &(pTime->sec), &(pTime->nanosec));
}