Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Author: Jason Lopez aka AtomSoft
- // Company: AtomSoftTech
- // Website: AtomSoft.wordpress.com
- //
- // I2C Proximity Sensor and Ambient Light Sensor
- /******************************************************************************/
- /* Files to Include */
- /******************************************************************************/
- #include "user.h" /* User funct/params, such as InitApp */
- #include "i2cbb.h"
- #pragma config WDTEN = OFF, XINST = ON, STVREN = OFF, FCMEN = OFF , CLKOEC = OFF
- #pragma config OSC = HSPLL, PLLDIV = 3,CFGPLLEN = ON,CPUDIV = OSC1
- //#pragma config LS48MHZ = SYS48X8
- /******************************************************************************
- ADDRESS = 0x27
- G = GET
- 2 = 10bytes
- 14 = REGISTER/LOCATION 0x14
- ADDRESS = 0xA1
- P = PUT
- 2 = 10bytes
- 14 = REGISTER/LOCATION 0x14
- ******************************************************************************/
- #pragma udata BIG
- char msgBuff[255];
- #pragma udata
- char crlf[4] = "\r\n\0";
- /******************************************************************************/
- /* Main Program */
- /******************************************************************************/
- void main(void)
- {
- InitApp();
- while(1)
- {
- }
- }
- void WriteI2C(unsigned char data, unsigned char dev)
- {
- char done = 0;
- i2c_start();
- i2c_tx(dev);
- i2c_tx(data);
- i2c_stop();
- }
- void InitApp(void)
- {
- OSCTUNE = 0;
- OSCCON = 0; //Primary OSC Selected
- //while(!OSCCONbits.OSTS); //Wait until Primary OSC is ready and running
- ADCON0 = 0;
- ADCON1 = 0x0F;
- CM1CON = 0x00;
- ANCON0 = 0xFF;
- ANCON1 = 0xFF;
- CM2CON = 0x00;
- CCP1CON = 0;
- INTCON = INTCON2 = INTCON3 = 0;
- PIR1 = PIR2 = 0;
- PIE1 = PIE2 = 0;
- //Enable UART 9600,8-N-1
- RCSTAbits.SPEN = 1;
- TRISC |= 0b11000000;
- //Select Your Speed
- //SPBRG = 38; //19200bps
- SPBRG = 77; //9600bps
- SPBRGH = 0;
- TXSTA = 0b00100100;
- BAUDCON = 0b00000000;
- RCSTA = 0b10010000;
- INTCON = 0;
- PIE1 = 0;
- PIR1 = 0;
- //Set INT channels to input
- TRISA |= 0b00000011;
- TRISB |= 0b00111111;
- }
- unsigned char getChar(void)
- {
- unsigned char rxTemp = 0;
- while(PIR1bits.RCIF == 0);
- rxTemp = RCREG;
- return rxTemp;
- }
- void putChar(char data)
- {
- while(!PIR1bits.TXIF);
- TXREG = data;
- }
- void getStr(char *buff)
- {
- char temp = 0;
- char done = 0;
- while(!done)
- {
- temp = getChar();
- if(temp == '\n')
- done = 1;
- else
- *buff++ = temp;
- }
- }
- void putStr(char *buff)
- {
- char temp=0;
- while(*buff != 0)
- {
- temp = *buff++;
- putChar(temp);
- //Delay10TCYx(1);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement