Hi everyone Can you help me ?? This code below is for CAN interface and tranceiver.. I'm green in this thing.. so I want to ask you how to write a code for I2C interface and Digital to analog converter..
Code:
#include "inc/hw_memmap.h"
#include "inc/hw_ty pes.h"
#include "inc/hw_ints.h"
#include "inc/hw_can.h"
#include "driverlib/can.h"
#include "driverlib/interrupt.h"
#include "driverlib/sysctl.h"
#include "driverlib/gpio.h"
#include "utils/uartstdio.h"
int main(void)
{
tCANMsgObject zinute;
int i = 0;
unsigned char duomenys[30];
zinute.ulMsgID = 1; // CAN zinutes ID
zinute.ulMsgIDMask = 0; // kauke naudojama kai yra ID filtravimas
zinute.ulFlags = 0; // veliavele
//nustatomas taktavimas is isorinio taktiniu impulsu generatoriaus
SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN |
SYSCTL_XTAL_16MHZ);
//ijungiamas bendros paskiries D portas kuriame yra reikalingi pinai
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);
//nustatoma alternatyvi funkcija GPIO pinams.
GPIOPinTypeCAN(GPIO_PORTD_BASE, GPIO_PIN_0 | GPIO_PIN_1);
// pinams priskiriamos CAN0 funkcijos
GPIOPinConfigure(GPIO_PD0_CAN0RX);
GPIOPinConfigure(GPIO_PD1_CAN0TX);
// ijungiama CAN periferija
SysCtlPeripheralEnable(SYSCTL_PERIPH_CAN0);
// nustatomas CAN taktavimas
CANBitRateSet(CAN0_BASE, SysCtlClockGet(), 16000000);
//ijungiamas CAN
CANEnable(CAN0_BASE);
//kas 5s zinutei priskiriami duomenys ir ji issiunciama
for (i=0;i<5;i++)
{
zinute.pucMsgData = &duomenys[i]; // rodykle i duomenis
zinute.ulMsgLen = sizeof(duomenys[i]); // siunciamu duomenu ilgis
CANMessageSet(CAN0_BASE, 1, &zinute, MSG_OBJ_TYPE_TX);
SysCtlDelay(5 * SysCtlClockGet() / 3); //5s uzlaikymas
}
}
[code]