OpenCores
URL https://opencores.org/ocsvn/395_vgs/395_vgs/trunk

Subversion Repositories 395_vgs

[/] [395_vgs/] [trunk/] [src/] [PIC18/] [input.c] - Rev 31

Go to most recent revision | Compare with Previous | Blame | View Log

#include <system.h>
#include "input.h"
 
 
#pragma CLOCK_FREQ 50000000
 
char getinput()
{
 
	set_bit(portd, 5);
	delay_us(12);
	clear_bit(portd, 5);
	delay_us(6);
 
	set_bit(rcsta, SREN);		//Single reception
 
	if(pir1 & 0b00100000)
	{
		return rcreg;
	}
 
}
 
void setupinput(void)
{
	set_bit(trisc, 7);
	spbrg = 255;
 
	set_bit(txsta,SYNC);
	set_bit(rcsta,SPEN);
	set_bit(txsta,CSRC);
	clear_bit(rcsta, SREN);
	clear_bit(rcsta, CREN);
 
	clear_bit(portd, 5);		
}
 
char getlonginput(void)
{
	char Output = 00000000b;
 
	set_bit(portd, 5);
	delay_us(12);
	clear_bit(portd, 5);
	delay_us(6);
 
	if(portd | 01111111b)
	{
		Output = 00000001b;
	}
 
	set_bit(portd, 1);
	if(portd | 01111111b)
	{
		Output = 00000010b | Output;
	}
 
	clear_bit(portd, 1);
	delay_us(6);
	set_bit(portd, 1);	
 
	if(portd | 01111111b)
	{
		Output = 00000100b | Output;
	}
 
	clear_bit(portd, 1);
	delay_us(6);
	set_bit(portd, 1);	
 
	if(portd | 01111111b)
	{
		Output = 00001000b | Output;
	}
 
	clear_bit(portd, 1);
	delay_us(6);
	set_bit(portd, 1);	
 
	if(portd | 01111111b)
	{
		Output = 00010000b | Output;
	}
 
	clear_bit(portd, 1);
	delay_us(6);
	set_bit(portd, 1);	
 
	if(portd | 01111111b)
	{
		Output = 00100000b | Output;
	}
 
	clear_bit(portd, 1);
	delay_us(6);
	set_bit(portd, 1);	
 
	if(portd | 01111111b)
	{
		Output = 01000000b | Output;
	}
 
	clear_bit(portd, 1);
	delay_us(6);
	set_bit(portd, 1);	
 
	if(portd | 01111111b)
	{
		Output = 10000000b | Output;
	}	
	clear_bit(portd, 1);
	delay_us(6);
}
 

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.