diff options
Diffstat (limited to 'src/c/hardware')
167 files changed, 5474 insertions, 0 deletions
diff --git a/src/c/hardware/avr/adc/u8AVRADCSetups.c b/src/c/hardware/avr/adc/u8AVRADCSetups.c new file mode 100644 index 00000000..66f491b2 --- /dev/null +++ b/src/c/hardware/avr/adc/u8AVRADCSetups.c @@ -0,0 +1,43 @@ +// Function to initialise ADC of AVR +// +// Calling Sequence +// AVRSetupADC(uint8 prescaler, uint8 adc_ref) +// +// Parameters +// prescaler: prescaler to be used for generating ADC clock (0-7) +// adc_ref : reference voltage to be used for ADC conversion +// 0 -> Voltage on VREF pin +// 1 -> Voltage on AVCC pin +// 2 -> Internal 2.56 reference voltage +// +// Description +// This function initialises ADc of AVR with given parameters. 'prescaler' is +// needed for deciding ADC clock. ADC clock should be between 50KHz and 200KHz +// and it given as (MCU clock/2^prescaler). Select appropriate prescaler depending +// on MCU clock. 'adc_ref' selects one of the available reference voltage sources +// available +// Examples +// AVRADCSetup(128,0) +// +// Authors +// Siddhesh Wani +// Ashish Kamble + +#include "AVRPeripheralADC.h" + + +uint8 u8AVRADCSetups(uint8 prescaler, uint8 adc_ref) +{ +/*Set the prescaler value*/ + ADCSRA |= (prescaler & 0x07); + + /*Set the adc reference voltage*/ + ADMUX |= ((adc_ref & 0x03) << 6); + + /*Enable ADC hardware. Set ADEN bit*/ +ADCSRA |= (1<<7); + +return 0; +} + + diff --git a/src/c/hardware/avr/adc/u8AVRReadADCs.c b/src/c/hardware/avr/adc/u8AVRReadADCs.c new file mode 100644 index 00000000..302f8c82 --- /dev/null +++ b/src/c/hardware/avr/adc/u8AVRReadADCs.c @@ -0,0 +1,82 @@ +// Copyright (C) 2017 - IIT Bombay - FOSSEE +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt +// Organization: FOSSEE, IIT Bombay +// Email: toolbox@scilab.in + +// Function to get voltage on analog pin on AVR +// +// Calling Sequence +// u8AVRReadADCs(channel) +// +// Parameters +// channel : Select which channel is to be read. Values from 0-7 select one +// of the pins ADC0-ADC7. For other possible channel values refer +// datasheet +// Returns-> +// result : Digital value for the voltage present on channel selected +// +// Description +// This function returns digital value for present on adc pins. 'channel' +// selects which of the ADC0-ADC7 is to be used for reading analog value. +// Apart from reading just ADC0-ADC7 other it can also read differential +// voltages between some pins. For channel values for those options, please +// refer datasheet. +// +// Examples +// adc_result = u8AVRReadADC(0) //Read ADC0 +// +// Authors +// Siddhesh Wani +// Ashish Kamble + + +#include "AVRPeripheralADC.h" + +uint8 u8AVRReadADCs(uint8 channel) +{ + +uint8 i; + + ADCH=0x00; + + i=channel&0x07; + ADMUX=i|0x60; //i|0x40 for 10 bits + ADCSRA|=1<<ADSC; + + while(ADCSRA & (1<<ADSC)); // wait for conv. to complete + uint8 temp=ADCH; //unsigned int temp=ADC; for 10 bits + + return temp; + +} + + + + + + + + + + +/*Set ADC conversion channel*/ +// ADMUX |= (channel & 0x1F); + + /*Start ADC conversion. Set 'ADSC' bit*/ +// ADCSRA |= (1<<6); + + /*Wait for conversion to complete. Check 'ADIF' bit*/ +// while(!(ADCSRA & (1<<4))); + + /*Clear ADIF flag*/ +// ADCSRA |= (1<<4); + + /*ADC conversion result is stored in ADCH/L registers*/ +// return (ADC); + + diff --git a/src/c/hardware/avr/default_files/Makefile b/src/c/hardware/avr/default_files/Makefile new file mode 100644 index 00000000..c388196b --- /dev/null +++ b/src/c/hardware/avr/default_files/Makefile @@ -0,0 +1,387 @@ + +# make all = Make software and program +# make clean = Clean out built project files. +# make program = Download the hex file to the device, using avrdude. Please +# customize the avrdude settings below first! + +# Microcontroller Type +MCU = atmega16 + +# Target file name (without extension). +TARGET = main + +# Programming hardware: +AVRDUDE_PROGRAMMER = usbasp + +AVRDUDE_PORT = /dev/usb + +############# Don't need to change below here for most purposes (Elliot) + +# Optimization level, can be [0, 1, 2, 3, s]. 0 turns off optimization. +# (Note: 3 is not always the best optimization level. See avr-libc FAQ.) +OPT = s + +# Output format. (can be srec, ihex, binary) +FORMAT = ihex + + +CSRCDIR = src/c +HSRCDIR = includes +ISRCDIR = interfaces +SCI2CDIR = . +# List C source files here. (C dependencies are automatically generated.) +SRC = $(wildcard $(CSRCDIR)/*.c) main.c + +# If there is more than one source file, append them above, or modify and +# uncomment the following: +#SRC += foo.c bar.c + +# You can also wrap lines by appending a backslash to the end of the line: +#SRC += baz.c \ +#xyzzy.c + + + +# List Assembler source files here. +# Make them always end in a capital .S. Files ending in a lowercase .s +# will not be considered source files but generated files (assembler +# output from the compiler), and will be deleted upon "make clean"! +# Even though the DOS/Win* filesystem matches both .s and .S the same, +# it will preserve the spelling of the filenames, and gcc itself does +# care about how the name is spelled on its command-line. +ASRC = + + +# List any extra directories to look for include files here. +# Each directory must be seperated by a space. +EXTRAINCDIRS = includes interfaces +EXTRALIBDIRS = . + + +# Optional compiler flags. +# -g: generate debugging information (for GDB, or for COFF conversion) +# -O*: optimization level +# -f...: tuning, see gcc manual and avr-libc documentation +# -Wall...: warning level +# -Wa,...: tell GCC to pass this to the assembler. +# -ahlms: create assembler listing +#CFLAGS = -g -O$(OPT) \ +#-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums \ +#-Wall -Wstrict-prototypes \ +#-Wa,-adhlns=$(<:.c=.lst) \ +#$(patsubst %,-I%,$(EXTRAINCDIRS)) +CFLAGS = -g -Wall $(patsubst %,-I%,$(EXTRAINCDIRS)) $(patsubst %,-L%,$(EXTRALIBDIRS)) + +# Set a "language standard" compiler flag. +# Unremark just one line below to set the language standard to use. +# gnu99 = C99 + GNU extensions. See GCC manual for more information. +#CFLAGS += -std=c89 +#CFLAGS += -std=gnu89 +#CFLAGS += -std=c99 +#CFLAGS += -std=gnu99 + + + +# Optional assembler flags. +# -Wa,...: tell GCC to pass this to the assembler. +# -ahlms: create listing +# -gstabs: have the assembler create line number information; note that +# for use in COFF files, additional information about filenames +# and function names needs to be present in the assembler source +# files -- see avr-libc docs [FIXME: not yet described there] +ASFLAGS = -Wa,-adhlns=$(<:.S=.lst),-gstabs + + + +# Optional linker flags. +# -Wl,...: tell GCC to pass this to linker. +# -Map: create map file +# --cref: add cross reference to map file +LDFLAGS = -Wl,-Map=$(TARGET).map,--cref + + + +# Additional libraries + +# Minimalistic printf version +#LDFLAGS += -Wl,-u,vfprintf -lprintf_min + +# Floating point printf version (requires -lm below) +#LDFLAGS += -Wl,-u,vfprintf -lprintf_flt + +# -lm = math library +LDFLAGS += -lc +LDFLAGS += -lm + +# Programming support using avrdude. Settings and variables. + + +AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex +#AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep + +AVRDUDE_FLAGS = -p $(MCU) -c $(AVRDUDE_PROGRAMMER) + +# Uncomment the following if you want avrdude's erase cycle counter. +# Note that this counter needs to be initialized first using -Yn, +# see avrdude manual. +#AVRDUDE_ERASE += -y + +# Uncomment the following if you do /not/ wish a verification to be +# performed after programming the device. +#AVRDUDE_FLAGS += -V + +# Increase verbosity level. Please use this when submitting bug +# reports about avrdude. See <http://savannah.nongnu.org/projects/avrdude> +# to submit bug reports. +#AVRDUDE_FLAGS += -v -v + +#Run while cable attached or don't +AVRDUDE_FLAGS += -E reset #keep chip disabled while cable attached +#AVRDUDE_FLAGS += -E noreset + +#AVRDUDE_WRITE_FLASH = -U lfuse:w:0x04:m #run with 8 Mhz clock + +#AVRDUDE_WRITE_FLASH = -U lfuse:w:0x21:m #run with 1 Mhz clock #default clock mode + +#AVRDUDE_WRITE_FLASH = -U lfuse:w:0x01:m #run with 1 Mhz clock no start up time + +# --------------------------------------------------------------------------- + +# Define directories, if needed. +DIRAVR = /usr/lib/avr +DIRAVRBIN = $(DIRAVR)/bin +DIRAVRUTILS = $(DIRAVR)/utils/bin +DIRINC = $(DIRAVR)/include +DIRLIB = $(DIRAVR)/lib + + +# Define programs and commands. +SHELL = sh + +CC = avr-gcc + +OBJCOPY = avr-objcopy +OBJDUMP = avr-objdump +SIZE = avr-size +AR = avr-ar + +# Programming support using avrdude. +AVRDUDE = avrdude + + +REMOVE = rm -f +COPY = cp + +HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex +ELFSIZE = $(SIZE) -A $(TARGET).elf + + + +# Define Messages +# English +MSG_ERRORS_NONE = Errors: none +MSG_BEGIN = -------- begin -------- +MSG_END = -------- end -------- +MSG_SIZE_BEFORE = Size before: +MSG_SIZE_AFTER = Size after: +MSG_COFF = Converting to AVR COFF: +MSG_EXTENDED_COFF = Converting to AVR Extended COFF: +MSG_FLASH = Creating load file for Flash: +MSG_EEPROM = Creating load file for EEPROM: +MSG_EXTENDED_LISTING = Creating Extended Listing: +MSG_SYMBOL_TABLE = Creating Symbol Table: +MSG_LINKING = Linking: +MSG_COMPILING = Compiling: +MSG_ASSEMBLING = Assembling: +MSG_CLEANING = Cleaning project: + + + + +# Define all object files. +OBJ = $(SRC:.c=.o) $(ASRC:.S=.o) + +# Define all listing files. +LST = $(ASRC:.S=.lst) $(SRC:.c=.lst) + +#LOCAL_LIB +LOCAL_LIB = main.a + +# Combine all necessary flags and optional flags. +# Add target processor to flags. +ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS) +ALL_ASFLAGS = -mmcu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS) + + + +# Default target: make program! +all: begin gccversion sizebefore $(TARGET).elf $(TARGET).hex $(TARGET).eep \ + $(TARGET).lss $(TARGET).sym sizeafter finished end +# $(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM) + +# Eye candy. +# AVR Studio 3.x does not check make's exit code but relies on +# the following magic strings to be generated by the compile job. +begin: + @echo + @echo $(MSG_BEGIN) + +finished: + @echo $(MSG_ERRORS_NONE) + +end: + @echo $(MSG_END) + @echo + + +# Display size of file. +sizebefore: + @if [ -f $(TARGET).elf ]; then echo; echo $(MSG_SIZE_BEFORE); $(ELFSIZE); echo; fi + +sizeafter: + @if [ -f $(TARGET).elf ]; then echo; echo $(MSG_SIZE_AFTER); $(ELFSIZE); echo; fi + + + +# Display compiler version information. +gccversion : + @$(CC) --version + + + + +# Convert ELF to COFF for use in debugging / simulating in +# AVR Studio or VMLAB. +COFFCONVERT=$(OBJCOPY) --debugging \ + --change-section-address .data-0x800000 \ + --change-section-address .bss-0x800000 \ + --change-section-address .noinit-0x800000 \ + --change-section-address .eeprom-0x810000 + + +coff: $(TARGET).elf + @echo + @echo $(MSG_COFF) $(TARGET).cof + $(COFFCONVERT) -O coff-avr $< $(TARGET).cof + + +extcoff: $(TARGET).elf + @echo + @echo $(MSG_EXTENDED_COFF) $(TARGET).cof + $(COFFCONVERT) -O coff-ext-avr $< $(TARGET).cof + + + + +# Program the device. +program: $(TARGET).hex $(TARGET).eep + $(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM) + + + + +# Create final output files (.hex, .eep) from ELF output file. +%.hex: %.elf + @echo + @echo $(MSG_FLASH) $@ + $(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@ + +%.eep: %.elf + @echo + @echo $(MSG_EEPROM) $@ + -$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \ + --change-section-lma .eeprom=0 -O $(FORMAT) $< $@ + +# Create extended listing file from ELF output file. +%.lss: %.elf + @echo + @echo $(MSG_EXTENDED_LISTING) $@ + $(OBJDUMP) -h -S $< > $@ + +# Create a symbol table from ELF output file. +%.sym: %.elf + @echo + @echo $(MSG_SYMBOL_TABLE) $@ + avr-nm -n $< > $@ + + + +# Link: create ELF output file from object files. +.SECONDARY : $(TARGET).elf +.PRECIOUS : $(OBJ) +%.elf: %.a + @echo + @echo $(MSG_LINKING) $@ + $(CC) $(ALL_CFLAGS) $(LOCAL_LIB) -o $@ $(LDFLAGS) + +$(LOCAL_LIB): $(OBJ) + $(AR) rcs $@ $(OBJ) + +# Compile: create object files from C source files. +%.o : %.c + @echo + @echo $(MSG_COMPILING) $< + $(CC) -c $(ALL_CFLAGS) $< -o $@ + + +# Compile: create assembler files from C source files. +%.s : %.c + $(CC) -S $(ALL_CFLAGS) $< -o $@ + + +# Assemble: create object files from assembler source files. +%.o : %.S + @echo + @echo $(MSG_ASSEMBLING) $< + $(CC) -c $(ALL_ASFLAGS) $< -o $@ + + + + + + +# Target: clean project. +clean: begin clean_list finished end + +clean_list : + @echo + @echo $(MSG_CLEANING) + $(REMOVE) $(TARGET).hex + $(REMOVE) $(TARGET).eep + $(REMOVE) $(TARGET).obj + $(REMOVE) $(TARGET).cof + $(REMOVE) $(TARGET).elf + $(REMOVE) $(TARGET).map + $(REMOVE) $(TARGET).obj + $(REMOVE) $(TARGET).a90 + $(REMOVE) $(TARGET).sym + $(REMOVE) $(TARGET).lnk + $(REMOVE) $(TARGET).lss + $(REMOVE) $(OBJ) + $(REMOVE) $(LST) + $(REMOVE) $(SRC:.c=.s) + $(REMOVE) $(SRC:.c=.d) + $(REMOVE) *~ + +# Automatically generate C source code dependencies. +# (Code originally taken from the GNU make user manual and modified +# (See README.txt Credits).) +# +# Note that this will work with sh (bash) and sed that is shipped with WinAVR +# (see the SHELL variable defined above). +# This may not work with other shells or other seds. +# +%.d: %.c + set -e; $(CC) -MM $(ALL_CFLAGS) $< \ + | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > $@; \ + [ -s $@ ] || rm -f $@ + + +# Remove the '-' if you want to see the dependency files generated. +-include $(SRC:.c=.d) + + + +# Listing of phony targets. +.PHONY : all begin finish end sizebefore sizeafter gccversion coff extcoff \ + clean clean_list program diff --git a/src/c/hardware/avr/gpio/u8AVRDigitalIns.c b/src/c/hardware/avr/gpio/u8AVRDigitalIns.c new file mode 100644 index 00000000..a2517b98 --- /dev/null +++ b/src/c/hardware/avr/gpio/u8AVRDigitalIns.c @@ -0,0 +1,63 @@ +// Copyright (C) 2017 - IIT Bombay - FOSSEE +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt +// Organization: FOSSEE, IIT Bombay +// Email: toolbox@scilab.in + +// Function to get current state (high\low) of a digital pin on AVR +// +// Calling Sequence +// u8AVRDigitalIns(port,pin) +// +// Parameters +// port : port of microcontroller to be used (1 for PORTA, 2 for PORTB,...) +// pin : pin of port (mentioned above) to be used +// Returns-> +// state : state of the pin (0 for low and 1 for high) +// +// Description +// Each AVR microcontroller has pins which can be configured as digital +// outputs. These are normally divided among some 'ports' (group of pins). +// User has to select one of these port and which pin of that port is to +// be read. Function returns current state of the pin '1' (high) or '0' (low). +// +// +// Examples +// state = u8AVRDigitalIns(1,0) +// +// Authors +// Siddhesh Wani +// + + +#include "AVRPeripheralGPIO.h" + +uint8 u8AVRDigitalIns(uint8 port,uint8 pin) +{ + unsigned int state = 0; + if(port == PORT_A) + { + state = bit_is_clear(PINA,pin); + return !state; + } + if(port == PORT_B) + { + state = bit_is_clear(PINB,pin); + return !state; + } + if(port == PORT_C) + { + state = bit_is_clear(PINC,pin); + return !state; + } + if(port == PORT_D) + { + state = bit_is_clear(PIND,pin); + return !state; + } + +} diff --git a/src/c/hardware/avr/gpio/u8AVRDigitalOuts.c b/src/c/hardware/avr/gpio/u8AVRDigitalOuts.c new file mode 100644 index 00000000..8998fc91 --- /dev/null +++ b/src/c/hardware/avr/gpio/u8AVRDigitalOuts.c @@ -0,0 +1,78 @@ +// Copyright (C) 2017 - IIT Bombay - FOSSEE +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt +// Organization: FOSSEE, IIT Bombay +// Email: toolbox@scilab.in + +// Function to change state (high\low) of a digital output pin on AVR +// +// Calling Sequence +// u8AVRDigitalOuts(port,pin,state) +// +// Parameters +// port : port of microcontroller to be used (1 for PORTA, 2 for PORTB,...) +// pin : pin of port (mentioned above) to be used +// state : state to be outputed on pin (0 for low and 1 for high) +// +// Description +// Each AVR microcontroller has pins which can be configured as digital +// outputs. These are normally divided among some 'ports' (group of pins). +// User has to select one of these port and which pin of that port as +// digital output. Also, desired output state must be specified as +// '1' (high) or '0' (low). +// +// Examples +// u8AVRDigitalOuts(1,0,1) +// +// Authors +// Siddhesh Wani +// Ashish Kamble + + +#include "AVRPeripheralGPIO.h" + +void u8AVRDigitalOuts(uint8 port,uint8 pin,uint8 state) +{ + if(state == LOW) + {/*Make output pin high*/ + if(port == PORT_A) + { + PORTA = PORTA & ~(1<<pin); + } + if(port == PORT_B) + { + PORTB = PORTB & ~(1<<pin); + } + if(port == PORT_C) + { + PORTC = PORTC & ~(1<<pin); + } + if(port == PORT_D) + { + PORTD = PORTD & ~(1<<pin); + } + } + else + {/*Make output pin high*/ + if(port == PORT_A) + { + PORTA = PORTA | (1<<pin); + } + if(port == PORT_B) + { + PORTB = PORTB | (1<<pin); + } + if(port == PORT_C) + { + PORTC = PORTC | (1<<pin); + } + if(port == PORT_D) + { + PORTD = PORTD | (1<<pin); + } + } +} diff --git a/src/c/hardware/avr/gpio/u8AVRDigitalPortSetups.c b/src/c/hardware/avr/gpio/u8AVRDigitalPortSetups.c new file mode 100644 index 00000000..54ec7312 --- /dev/null +++ b/src/c/hardware/avr/gpio/u8AVRDigitalPortSetups.c @@ -0,0 +1,81 @@ +// Copyright (C) 2017 - IIT Bombay - FOSSEE +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt +// Organization: FOSSEE, IIT Bombay +// Email: toolbox@scilab.in + +// Function to decide direction of a digital pin on AVR +// +// Calling Sequence +// AVRDigitalPortSetup(port,direction) +// +// Parameters +// port : port of microcontroller to be used (1 for PORTA, 2 for PORTB,...) +// direction : direction to be set for pin (0 for input, 1 for output) +// +// Description +// Each AVR microcontroller has pins which can be configured as digital +// outputs/inputs. These are normally divided among some 'ports' (group of pins). +// User has to select one of these port and which pin of that port to be +// used as digital output/input. Also, desired direction must be specified as +// 'INPUT' or 'OUTPUT'. +// +// Examples +// AVRDigitalPortSetup(1,0); //this function will PortA as input Port +// +// Authors +// Siddhesh Wani +// Ashish Kamble + + +#include "AVRPeripheralGPIO.h" + +uint8 u8AVRDigitalPortSetups(uint8 port,uint8 direction) +{ + if(direction == INPUT) + { + /*Set port as input*/ + if(port == PORT_A) + { + DDRA = 0x00; + } + if(port == PORT_B) + { + DDRB = 0x00; + } + if(port == PORT_C) + { + DDRC = 0x00; + } + if(port == PORT_D) + { + DDRD = 0x00; + } + } + else + { + /*Set port as output*/ + if(port == PORT_A) + { + DDRA = 0xFF; + } + if(port == PORT_B) + { + DDRB = 0xFF; + } + if(port == PORT_C) + { + DDRC = 0xFF; + } + if(port == PORT_D) + { + DDRD = 0xFF; + } + } + return 0; +} + diff --git a/src/c/hardware/avr/gpio/u8AVRDigitalSetups.c b/src/c/hardware/avr/gpio/u8AVRDigitalSetups.c new file mode 100644 index 00000000..e28c468c --- /dev/null +++ b/src/c/hardware/avr/gpio/u8AVRDigitalSetups.c @@ -0,0 +1,70 @@ +// Function to decide direction of a digital pin on AVR +// +// Calling Sequence +// AVRDigitalSetup(port,pin,direction) +// +// Parameters +// port : port of microcontroller to be used (1 for PORTA, 2 for PORTB,...) +// pin : pin of port (mentioned above) to be used +// direction : direction to be set for pin (0 for input, 1 for output) +// +// Description +// Each AVR microcontroller has pins which can be configured as digital +// outputs/inputs. These are normally divided among some 'ports' (group of pins). +// User has to select one of these port and which pin of that port to be +// used as digital output/input. Also, desired direction must be specified as +// 'INPUT' or 'OUTPUT'. +// +// Examples +// AVRDigitalSetup(1,0,1) +// +// Authors +// Siddhesh Wani +// + +#include "AVRPeripheralGPIO.h" + + +void u8AVRDigitalSetups(uint8 port,uint8 pin,uint8 direction) +{ + + if (direction == INPUT) + {/*Set pin as input*/ + if(port == PORT_A) + { + DDRA = DDRA & ~(1<<pin); + } + if(port == PORT_B) + { + DDRB = DDRB & ~(1<<pin); + } + if(port == PORT_C) + { + DDRC = DDRC & ~(1<<pin); + } + if(port == PORT_D) + { + DDRD = DDRD & ~(1<<pin); + } + } + else + {/*Set pin as output*/ + if(port == PORT_A) + { + DDRA = DDRA | (1<<pin); + } + if(port == PORT_B) + { + DDRB = DDRB | (1<<pin); + } + if(port == PORT_C) + { + DDRC = DDRC | (1<<pin); + } + if(port == PORT_D) + { + DDRD = DDRD | (1<<pin); + } + } +} + diff --git a/src/c/hardware/avr/includes/AVRPeripheralADC.h b/src/c/hardware/avr/includes/AVRPeripheralADC.h new file mode 100644 index 00000000..2a27e37d --- /dev/null +++ b/src/c/hardware/avr/includes/AVRPeripheralADC.h @@ -0,0 +1,27 @@ +//This file defines constants corresponding to gpios and digital input functions. +// +// Authors +// Siddhesh Wani +// + +#ifndef __AVRPERIPHERALADC_H__ +#define __AVRPERIPHERALADC_H__ + +#include <avr/io.h> +#include "types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +//Function prototypes +uint8 u8AVRADCSetups(uint8 prescaler, uint8 adc_ref); + +uint8 u8AVRReadADCs(uint8 channel); + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* !__AVRPERIPHERALGPIO_H__ */ diff --git a/src/c/hardware/avr/includes/AVRPeripheralGPIO.h b/src/c/hardware/avr/includes/AVRPeripheralGPIO.h new file mode 100644 index 00000000..9a8d2d65 --- /dev/null +++ b/src/c/hardware/avr/includes/AVRPeripheralGPIO.h @@ -0,0 +1,54 @@ +// Copyright (C) 2017 - IIT Bombay - FOSSEE +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt +// Organization: FOSSEE, IIT Bombay +// Author: Ashish Kamble +// Email: toolbox@scilab.in + + +#ifndef __AVRPERIPHERALGPIO_H__ +#define __AVRPERIPHERALGPIO_H__ + +#include <avr/io.h> + +#ifdef __cplusplus +extern "C" { +#endif + + +#include <avr/io.h> +#include "types.h" + +//Port definitions +#define PORT_A 1 +#define PORT_B 2 +#define PORT_C 3 +#define PORT_D 4 + +//Direction definitions +#define INPUT 0 +#define OUTPUT 1 + +//Pin state definitions +#define LOW 0 +#define HIGH 1 + +//Function prototypes +void u8AVRDigitalSetups(uint8 port,uint8 pin,uint8 direction); + +uint8 u8AVRDigitalIns(uint8 port,uint8 pin); + +void u8AVRDigitalOuts(uint8 port,uint8 pin,uint8 state); + +uint8 u8AVRDigitalPortSetups(uint8 port,uint8 direction); + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* !__AVRPERIPHERALGPIO_H__ */ diff --git a/src/c/hardware/avr/includes/AVRPeripheralPWM.h b/src/c/hardware/avr/includes/AVRPeripheralPWM.h new file mode 100644 index 00000000..2107a5a4 --- /dev/null +++ b/src/c/hardware/avr/includes/AVRPeripheralPWM.h @@ -0,0 +1,34 @@ +//This file defines functions prototypes related to PWM. +// +// Authors +// Ashish Kamble +// + +#ifndef __AVRPERIPHERALPWM_H__ +#define __AVRPERIPHERALPWM_H__ + +#include <avr/io.h> +#include "types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +//Function prototypes +uint8 u8AVRPWM0Setups(uint8 waveform_mode, uint8 output_mode); + +uint8 u8AVRPWM2Setups(uint8 waveform_mode, uint8 output_mode); + +uint8 u8AVRPWM1Setups(uint8 waveform_mode, uint8 output_mode, uint8 output_pin); + +uint8 u8AVRPWM0SetDutys(uint8 duty); + +uint8 u8AVRPWM2SetDutys(uint8 duty); + +uint8 u8AVRPWM1SetDutys(uint8 output_pin, uint16 duty, uint16 Top_Value); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* !__AVRPERIPHERALPWM_H__ */ diff --git a/src/c/hardware/avr/includes/AVRPeripheralTimer.h b/src/c/hardware/avr/includes/AVRPeripheralTimer.h new file mode 100644 index 00000000..ab087692 --- /dev/null +++ b/src/c/hardware/avr/includes/AVRPeripheralTimer.h @@ -0,0 +1,32 @@ +// Copyright (C) 2017 - IIT Bombay - FOSSEE +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt +// Organization: FOSSEE, IIT Bombay +// Author: Ashish Kamble +// Email: toolbox@scilab.in + +#ifndef __AVRPERIPHERALTIMER_H__ +#define __AVRPERIPHERALTIMER_H__ + +#include <avr/io.h> +#include "types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +//Function prototypes + +uint16 u8AVRGetTimerValues(uint16 timer); + +uint8 u8AVRTimerSetups(uint8 timer, uint16 prescaler,uint8 clock_source); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* !__AVRPERIPHERALTIMER_H__ */ diff --git a/src/c/hardware/avr/includes/AVRPeripheralUART.h b/src/c/hardware/avr/includes/AVRPeripheralUART.h new file mode 100644 index 00000000..09db3b03 --- /dev/null +++ b/src/c/hardware/avr/includes/AVRPeripheralUART.h @@ -0,0 +1,59 @@ +// Copyright (C) 2017 - IIT Bombay - FOSSEE +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt +// Organization: FOSSEE, IIT Bombay +// Author: Ashish Kamble +// Email: toolbox@scilab.in + + +#ifndef __AVRPERIPHERALUART_H__ +#define __AVRPERIPHERALUART_H__ + +#include <avr/io.h> +#include "types.h" + + +#ifdef __cplusplus +extern "C" { +#endif + +//Function prototypes +uint8 u8AVRUARTSetups(uint8 mode, uint32 baudrate, uint8 stopbits, uint8 parity); + +uint8 u8AVRUARTTransmits(uint8 data); + +uint8 gAVRUARTTransmits(char* msg,int size); + +uint8 u16AVRUARTTransmits(uint16 data); + +uint8 i16AVRUARTTransmits(int16 data); + +uint8 i8AVRUARTTransmits(int8 data); + +//uint8 sAVRUARTTransmits(float data); + +uint8 u8AVRUARTTransmita(uint8 *x,int size); + +//uint8 gAVRUARTTransmita(uint8 *x,int size); + +uint8 u16AVRUARTTransmita(uint16 *x,int size); + +uint8 i16AVRUARTTransmita(int16 *x,int size); + +uint8 i8AVRUARTTransmita(int8 *x,int size); + +uint8 u8AVRUSARTReceiveCharu8(); + +uint8 dAVRUARTTransmits(double data); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* !__AVRUART_H__ */ + + diff --git a/src/c/hardware/avr/includes/AVRUtil.h b/src/c/hardware/avr/includes/AVRUtil.h new file mode 100644 index 00000000..55789bef --- /dev/null +++ b/src/c/hardware/avr/includes/AVRUtil.h @@ -0,0 +1,31 @@ +// Copyright (C) 2017 - IIT Bombay - FOSSEE +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt +// Organization: FOSSEE, IIT Bombay +// Author: Siddhesh Wani +// Email: toolbox@scilab.in + +#ifndef __AVRUTIL_H__ +#define __AVRUTIL_H__ + +#include <avr/io.h> + + +#ifdef __cplusplus +extern "C" { +#endif + +#include "types.h" +#include "util/delay.h" + +uint8 u16AVRSleeps (uint16 delay); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* !__AVRUTIL_H__ */ diff --git a/src/c/hardware/avr/interfaces/int_AVRPeripheralADC.h b/src/c/hardware/avr/interfaces/int_AVRPeripheralADC.h new file mode 100644 index 00000000..5d3a48e5 --- /dev/null +++ b/src/c/hardware/avr/interfaces/int_AVRPeripheralADC.h @@ -0,0 +1,32 @@ +// Copyright (C) 2017 - IIT Bombay - FOSSEE +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt +// Organization: FOSSEE, IIT Bombay +// Aithor: Ashish Kamble +// Email: toolbox@scilab.in + + +#ifndef __INT_AVRPERIPHERALADC_H__ +#define __INT_AVRPERIPHERALADC_H__ + +#include <avr/io.h> +#include "AVRPeripheralADC.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define AVRADCSetup(in1,in2) u8AVRADCSetups((uint8) in1,\ + (uint8) in2); + +#define AVRReadADC(in1) u8AVRReadADCs((uint8) in1); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* !__AVRPERIPHERALADC_H__ */ diff --git a/src/c/hardware/avr/interfaces/int_AVRPeripheralGPIO.h b/src/c/hardware/avr/interfaces/int_AVRPeripheralGPIO.h new file mode 100644 index 00000000..3fcbb8f5 --- /dev/null +++ b/src/c/hardware/avr/interfaces/int_AVRPeripheralGPIO.h @@ -0,0 +1,40 @@ + +// Copyright (C) 2017 - IIT Bombay - FOSSEE +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt +// Organization: FOSSEE, IIT Bombay +// Author: Siddhesh Wani, Ashish Kamble +// Email: toolbox@scilab.in + + +#ifndef __INT_AVRPERIPHERALGPIO_H__ +#define __INT_AVRPERIPHERALGPIO_H__ + +#include <avr/io.h> +#include "AVRPeripheralGPIO.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define AVRDigitalSetup(in1,in2,in3) u8AVRDigitalSetups((uint8) in1,\ + (uint8) in2, (uint8) in3); + +#define AVRDigitalIn(in1,in2) u8AVRDigitalIns((uint8) in1, (uint8) in2); + +#define AVRDigitalOut(in1,in2,in3) u8AVRDigitalOuts((uint8) in1,\ + (uint8) in2, (uint8) in3); + +#define AVRDigitalPortSetup(in1,in2) u8AVRDigitalPortSetups((uint8) in1,\ + (uint8) in2); + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* !__AVRPERIPHERALGPIO_H__ */ diff --git a/src/c/hardware/avr/interfaces/int_AVRPeripheralPWM.h b/src/c/hardware/avr/interfaces/int_AVRPeripheralPWM.h new file mode 100644 index 00000000..5c5950bc --- /dev/null +++ b/src/c/hardware/avr/interfaces/int_AVRPeripheralPWM.h @@ -0,0 +1,39 @@ +// Copyright (C) 2017 - IIT Bombay - FOSSEE +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt +// Organization: FOSSEE, IIT Bombay +// Author: Ashish Kamble +// Email: toolbox@scilab.in + + +#ifndef __INT_AVRPERIPHERALPWM_H__ +#define __INT_AVRPERIPHERALPWM_H__ + +#include <avr/io.h> +#include "AVRPeripheralPWM.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define AVRPWM0Setup(in1,in2) u8AVRPWM0Setups((uint8) in1, (uint8) in2); + +#define AVRPWM2Setup(in1,in2) u8AVRPWM2Setups((uint8) in1, (uint8) in2); + +#define AVRPWM1Setup(in1,in2,in3) u8AVRPWM1Setups((uint8) in1, (uint8) in2, (uint8) in3); + +#define AVRPWM0SetDuty(in1) u8AVRPWM0SetDutys((uint8) in1); + +#define AVRPWM2SetDuty(in1) u8AVRPWM2SetDutys((uint8) in1); + +#define AVRPWM1SetDuty(in1,in2,in3) u8AVRPWM1SetDutys((uint8) in1,(uint16) in2,(uint16) in3); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* !__AVRPERIPHERALADC_H__ */ diff --git a/src/c/hardware/avr/interfaces/int_AVRPeripheralTimer.h b/src/c/hardware/avr/interfaces/int_AVRPeripheralTimer.h new file mode 100644 index 00000000..3ec6a7ec --- /dev/null +++ b/src/c/hardware/avr/interfaces/int_AVRPeripheralTimer.h @@ -0,0 +1,31 @@ +// Copyright (C) 2017 - IIT Bombay - FOSSEE +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt +// Organization: FOSSEE, IIT Bombay +// Author: Siddhesh Wani, Ashish Kamble +// Email: toolbox@scilab.in + + +#ifndef __INT_AVRPERIPHERALTIMER_H__ +#define __INT_AVRPERIPHERALTIMER_H__ + +#include <avr/io.h> +#include "AVRPeripheralTimer.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define AVRGetTimerValue(in1) u8AVRGetTimerValues((uint16) in1); + +#define AVRTimerSetup(in1,in2,in3) u8AVRTimerSetups((uint8) in1, (uint16) in2, (uint8) in3); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* !__AVRPERIPHERALADC_H__ */ diff --git a/src/c/hardware/avr/interfaces/int_AVRPeripheralUART.h b/src/c/hardware/avr/interfaces/int_AVRPeripheralUART.h new file mode 100644 index 00000000..81b4af68 --- /dev/null +++ b/src/c/hardware/avr/interfaces/int_AVRPeripheralUART.h @@ -0,0 +1,57 @@ +// Copyright (C) 2017 - IIT Bombay - FOSSEE +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt +// Organization: FOSSEE, IIT Bombay +// Authors: Siddhesh Wani, Ashish Kamble +// Email: toolbox@scilab.in + + +#ifndef __INT_AVRPERIPHERALUART_H__ +#define __INT_AVRPERIPHERALUART_H__ + +#include <avr/io.h> +#include "AVRPeripheralUART.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define AVRUARTSetup(in1,in2,in3,in4) u8AVRUARTSetups((uint8) in1,(uint32) in2,(uint8) in3,(uint8) in4); + +#define u80AVRUARTTransmitu80(in1) u8AVRUARTTransmits((uint8) in1); + +#define g2AVRUARTTransmitu80(in1,in2) gAVRUARTTransmits((char*) in1,in2[0]*in2[1]); + +#define u160AVRUARTTransmitu80(in1) u16AVRUARTTransmits((uint16) in1); + +#define i160AVRUARTTransmitu80(in1) i16AVRUARTTransmits((int16) in1); + +#define i80AVRUARTTransmitu80(in1) i8AVRUARTTransmits((int8) in1); + +#define u82AVRUARTTransmitu80(in1,in2) u8AVRUARTTransmita((uint8) in1,in2[0]*in2[1]); + +#define d0AVRUARTTransmitu80(in1) dAVRUARTTransmits((double) in1); + +//#define g2AVRUARTTransmitu80(in1,in2) gAVRUARTTransmita((char*) in1,in2[0]*in2[1]); + +#define u162AVRUARTTransmitu80(in1,in2) u16AVRUARTTransmita((uint16) in1,in2[0]*in2[1]); + +#define i162AVRUARTTransmitu80(in1,in2) i16AVRUARTTransmita((int16) in1,in2[0]*in2[1]); + +#define i82AVRUARTTransmitu80(in1,in2) i8AVRUARTTransmita((int8) in1,in2[0]*in2[1]); + +#define u80AVRUSARTReceiveCharu80() u8AVRUSARTReceiveCharu8(); + +//#define s0AVRUARTTransmitu80(in1) sAVRUARTTransmits((float) in1); + + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* !__AVRPERIPHERALUART_H__ */ diff --git a/src/c/hardware/avr/interfaces/int_AVRUtil.h b/src/c/hardware/avr/interfaces/int_AVRUtil.h new file mode 100644 index 00000000..51cbce58 --- /dev/null +++ b/src/c/hardware/avr/interfaces/int_AVRUtil.h @@ -0,0 +1,32 @@ +// Copyright (C) 2017 - IIT Bombay - FOSSEE +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt +// Organization: FOSSEE, IIT Bombay +// Author: Siddhesh Wani +// Email: toolbox@scilab.in + + +#ifndef __INT_AVRUTIL_H__ +#define __INT_AVRUTIL_H__ + +#include <avr/io.h> +#include "AVRUtil.h" + +#ifdef __cplusplus +extern "C" { +#endif + +//#define d0sleepu80(in1) u16AVRSleeps ((uint16) in1); + +#define AVRSleep(in1) u16AVRSleeps ((uint16) in1); + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* !__AVRPERIPHERALGPIO_H__ */ diff --git a/src/c/hardware/avr/pwm/u8AVRPWM0SetDutys.c b/src/c/hardware/avr/pwm/u8AVRPWM0SetDutys.c new file mode 100644 index 00000000..106a872e --- /dev/null +++ b/src/c/hardware/avr/pwm/u8AVRPWM0SetDutys.c @@ -0,0 +1,24 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Ashish Kamble + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ +//Function to Set Duty cycle of PWM Output generated by Timer0 at OC0 pin. + + +#include "AVRPeripheralPWM.h" + +uint8 u8AVRPWM0SetDutys(uint8 duty) +{ + uint8 duty_value = 0; + duty_value = (((uint16)(duty * 0xff))/100); + OCR0 = duty_value; + return 0; +} + diff --git a/src/c/hardware/avr/pwm/u8AVRPWM0Setups.c b/src/c/hardware/avr/pwm/u8AVRPWM0Setups.c new file mode 100644 index 00000000..131ee68b --- /dev/null +++ b/src/c/hardware/avr/pwm/u8AVRPWM0Setups.c @@ -0,0 +1,50 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Ashish Kamble + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ +//Function to Setup PWM output for OC0 pin. + + +#include "AVRPeripheralPWM.h" + + +uint8 u8AVRPWM0Setups(uint8 waveform_mode, uint8 output_mode) +{ + switch(waveform_mode) + { + case 0: + TCCR0 |= (1<<WGM00); + break; + + case 1: + TCCR0 |= (1<<WGM00)|(1<<WGM01); + break; + + case 2: + TCCR0 |= (1<<WGM01); + break; + } + switch(output_mode) + { + case 0: + TCCR0 |= (1<<COM01); + break; + + case 1: + TCCR0 |= (1<<COM00)|(1<<COM01); + break; + + case 2: + TCCR0 |= (1<<COM00); + break; + } + return 0; +} + diff --git a/src/c/hardware/avr/pwm/u8AVRPWM1SetDutys.c b/src/c/hardware/avr/pwm/u8AVRPWM1SetDutys.c new file mode 100644 index 00000000..47aad1c8 --- /dev/null +++ b/src/c/hardware/avr/pwm/u8AVRPWM1SetDutys.c @@ -0,0 +1,31 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Ashish Kamble + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ +//Function to Set Duty cycle and Top Value of PWM Output generated by Timer1 at OC1A or OC1B pin. + +#include "AVRPeripheralPWM.h" + +uint8 u8AVRPWM1SetDutys(uint8 output_pin, uint16 duty, uint16 Top_Value) +{ + uint16 duty_value = 0; + ICR1 = Top_Value; + if(output_pin==0) + { + duty_value = (((uint16)(duty * Top_Value))/100); + OCR1A = duty_value; + } + else if(output_pin==1) + { + duty_value = (((uint16)(duty * Top_Value))/100); + OCR1B = duty_value; + } + return 0; +} diff --git a/src/c/hardware/avr/pwm/u8AVRPWM1Setups.c b/src/c/hardware/avr/pwm/u8AVRPWM1Setups.c new file mode 100644 index 00000000..b3f2d8f4 --- /dev/null +++ b/src/c/hardware/avr/pwm/u8AVRPWM1Setups.c @@ -0,0 +1,69 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Ashish Kamble + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ +//Function to Setup PWM output for OC1A or OC1B pin. + +#include "AVRPeripheralPWM.h" + +uint8 u8AVRPWM1Setups(uint8 waveform_mode, uint8 output_mode, uint8 output_pin) +{ + switch(waveform_mode) + { + case 0: + TCCR1A |= (1<<WGM11); + TCCR1B |= (1<<WGM13); + break; + + case 1: + TCCR1A |= (1<<WGM11); + TCCR1B |= (1<<WGM12)|(1<<WGM13); + break; + + case 2: + TCCR1B |= (1<<WGM12)|(1<<WGM13); + break; + } + if(output_pin==0) + { + switch(output_mode) + { + case 0: + TCCR1A |= (1<<COM1A1); + break; + + case 1: + TCCR1A |= (1<<COM1A0)|(1<<COM1A1); + break; + + case 2: + TCCR1A |= (1<<COM1A0); + break; + } + } + else if(output_pin==1) + { + switch(output_mode==0) + { + case 0: + TCCR1A |= (1<<COM1B1); + break; + + case 1: + TCCR1A |= (1<<COM1B0)|(1<<COM1B1); + break; + + case 2: + TCCR1A |= (1<<COM1B0); + break; + } + } + return 0; +} diff --git a/src/c/hardware/avr/pwm/u8AVRPWM2SetDutys.c b/src/c/hardware/avr/pwm/u8AVRPWM2SetDutys.c new file mode 100644 index 00000000..e0b53186 --- /dev/null +++ b/src/c/hardware/avr/pwm/u8AVRPWM2SetDutys.c @@ -0,0 +1,22 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Ashish Kamble + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ +//Function to Set Duty cycle of PWM Output generated by Timer2 at OC2 pin. + +#include "AVRPeripheralPWM.h" + +uint8 u8AVRPWM2SetDutys(uint8 duty) +{ + uint8 duty_value = 0; + duty_value = (uint8)(((uint16)(duty * 0xff))/100); + OCR2 = duty_value; + return 0; +} diff --git a/src/c/hardware/avr/pwm/u8AVRPWM2Setups.c b/src/c/hardware/avr/pwm/u8AVRPWM2Setups.c new file mode 100644 index 00000000..f5f87672 --- /dev/null +++ b/src/c/hardware/avr/pwm/u8AVRPWM2Setups.c @@ -0,0 +1,47 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Ashish Kamble + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ +//Function to Setup PWM output for OC2 pin. + +#include "AVRPeripheralPWM.h" + +uint8 u8AVRPWM2Setups(uint8 waveform_mode, uint8 output_mode) +{ + switch(waveform_mode) + { + case 0: + TCCR2 |= (1<<WGM20); + break; + + case 1: + TCCR2 |= (1<<WGM20)|(1<<WGM21); + break; + + case 2: + TCCR2 |= (1<<WGM21); + break; + } + switch(output_mode) + { + case 0: + TCCR2 |= (1<<COM21); + break; + + case 1: + TCCR2 |= (1<<COM20)|(1<<COM21); + break; + + case 2: + TCCR2 |= (1<<COM20); + break; + } + return 0; +} diff --git a/src/c/hardware/avr/timer/u16AVRGetTimerValues.c b/src/c/hardware/avr/timer/u16AVRGetTimerValues.c new file mode 100644 index 00000000..8ef16e8d --- /dev/null +++ b/src/c/hardware/avr/timer/u16AVRGetTimerValues.c @@ -0,0 +1,51 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Ashish Kamble + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ +//Function selects the clock source and timer with prescaler. + + +#include "AVRPeripheralTimer.h" +#include <avr/interrupt.h> + + +uint16 u8AVRGetTimerValues(uint16 timer) +{ + uint16_t x; + switch(timer) + { + case 0: + { + x = TCNT0; + break; + } + + case 1: + { + unsigned char sreg; + unsigned int val; + sreg = SREG; + cli(); + val = TCNT1; + SREG = sreg; + sei(); + x = val; + break; + } + + case 2: + { + x = TCNT2; + break; + } + } +return x; +} + diff --git a/src/c/hardware/avr/timer/u8AVRGetTimerValues.c b/src/c/hardware/avr/timer/u8AVRGetTimerValues.c new file mode 100644 index 00000000..e08bb3a6 --- /dev/null +++ b/src/c/hardware/avr/timer/u8AVRGetTimerValues.c @@ -0,0 +1,63 @@ +// Copyright (C) 2017 - IIT Bombay - FOSSEE +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt +// Organization: FOSSEE, IIT Bombay +// Email: toolbox@scilab.in + + +// Function to get timer count +// +// Calling Sequence +// u8AVRGetTimerValues(timer) +// +// Parameters +// timer: timer whose current count is to be returned (0,1,2) +// ***Refer datasheet for more description about timer +// +// Description +// This function returns the count of timer specified +// +// +// Authors +// Ashish Kamble +// + + +#include "AVRPeripheralTimer.h" +#include <avr/interrupt.h> + + +uint16 u8AVRGetTimerValues(uint16 timer) +{ uint16_t x; + switch(timer) + { + case 0: + { + x = TCNT0; + break; + } + case 1: + { + unsigned char sreg; + unsigned int val; + sreg = SREG; + cli(); + val = TCNT1; + SREG = sreg; + sei(); + x = val; + break; + } + case 2: + { + x = TCNT2; + break; + } + } +return x; +} + diff --git a/src/c/hardware/avr/timer/u8AVRTimerSetups.c b/src/c/hardware/avr/timer/u8AVRTimerSetups.c new file mode 100644 index 00000000..6ee8d2af --- /dev/null +++ b/src/c/hardware/avr/timer/u8AVRTimerSetups.c @@ -0,0 +1,110 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Ashish Kamble + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ +//Function selects the clock source and timer with prescaler. + +#include "AVRPeripheralTimer.h" + +uint8 u8AVRTimerSetups(uint8 timer,uint16 prescaler,uint8 clock_source) +{ + + if(clock_source==0) + { + if(timer==0) + { + switch(prescaler) + { + case 1: TCCR0 |= (1<<CS00); + TCNT0 = 0x00; + case 8: TCCR0 |= (1<<CS01); + TCNT0 = 0x00; + case 64: TCCR0 |= (1<<CS00)|(1<<CS01); + TCNT0 = 0x00; + case 256: TCCR0 |= (1<<CS02); + TCNT0 = 0x00; + case 1024: TCCR0 |= (1<<CS00)|(1<<CS02); + TCNT0 = 0x00; + } + } + else if(timer==2) + { + switch(prescaler) + { + case 1: TCCR2 |= (1<<CS20); + TCNT2 = 0x00; + case 8: TCCR2 |= (1<<CS21); + TCNT2 = 0x00; + case 64: TCCR2 |= (1<<CS20)|(1<<CS21); + TCNT2 = 0x00; + case 256: TCCR2 |= (1<<CS22); + TCNT2 = 0x00; + case 1024: TCCR2 |= (1<<CS20)|(1<<CS22); + TCNT2 = 0x00; + } + } + else if(timer==1) + { + switch(prescaler) + { + case 1: TCCR1B |= (1<<CS10); + TCNT1H = 0x00; + TCNT1L = 0x00; + case 8: TCCR1B |= (1<<CS11); + TCNT1H = 0x00; + TCNT1L = 0x00; + case 64: TCCR1B |= (1<<CS10)|(1<<CS11); + TCNT1H = 0x00; + TCNT1L = 0x00; + case 256: TCCR1B |= (1<<CS12); + TCNT1H = 0x00; + TCNT1L = 0x00; + case 1024: TCCR1B |= (1<<CS10)|(1<<CS12); + TCNT1H = 0x00; + TCNT1L = 0x00; + } + } + } + else if(clock_source==1) + { + if(timer==0) + { + TCCR0 |= (1<<CS00)|(1<<CS01)|(1<<CS02); + TCNT0 = 0x00; + } + else if(timer==2) + { + TCCR2 |= (1<<CS20)|(1<<CS21)|(1<<CS22); + TCNT2 = 0x00; + } + else if(timer==1) + { + TCCR1B |= (1<<CS10)|(1<<CS11)|(1<<CS12); + TCNT1H = 0x00; + TCNT1L = 0x00; + } + } + return 0; +} + + + + + + + + + + + + + + + diff --git a/src/c/hardware/avr/uart/dAVRUARTTransmits.c b/src/c/hardware/avr/uart/dAVRUARTTransmits.c new file mode 100644 index 00000000..ec63c4de --- /dev/null +++ b/src/c/hardware/avr/uart/dAVRUARTTransmits.c @@ -0,0 +1,88 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Ashish Kamble + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ +//Not Tested// +#include "AVRPeripheralUART.h" +#include<math.h> + + +uint8 dAVRUARTTransmits(double data) +{ + //Extract integer part + long int intpart = (long int)data; + //Extract double part + //double floatpart = data - (double)intpart; + char* str; + int i = 0; + while(intpart) + { + str[i] = (intpart%10) + '0'; + intpart = intpart/10; + i++; + } + str[i]='\0'; + /* + int j = 0; + int k = i-1; + char temp; + while(j<k) + { + temp = str[j]; + str[j] = str[k]; + str[k] = temp; + j++; + k--; + } +*/ + + + /* + char* strfloat; + floatpart = floatpart*1000000000; + int l = 0; + while(floatpart) + { + strfloat[l] = ((unsigned int)floatpart%10) + '0'; + floatpart = floatpart/10; + l++; + } + while(*strfloat!='\0') + { + str[i+1] = strfloat[l-1]; + i++; + l--; + } + */ + + while(*str!='\0') + { + while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer + UDR = *str; // Put data into buffer, sends the data + str++; + } + while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer + UDR = (10); // Put data into buffer, sends the data + while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer + UDR = (13); // Put data into buffer, sends the data + return 0; +} + + + + + + + + + + + + diff --git a/src/c/hardware/avr/uart/dAVRUARTTransmitu8.c b/src/c/hardware/avr/uart/dAVRUARTTransmitu8.c new file mode 100644 index 00000000..8978cc00 --- /dev/null +++ b/src/c/hardware/avr/uart/dAVRUARTTransmitu8.c @@ -0,0 +1,21 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Ashish Kamble + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ +//Function to Transmit Char. + + +#include "AVRPeripheralUART.h" + +uint8 dAVRUARTTransmitu8(uint8 data) +{ + while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer + UDR = data; // Put data into buffer, sends the data +} diff --git a/src/c/hardware/avr/uart/gAVRUARTTransmita.c b/src/c/hardware/avr/uart/gAVRUARTTransmita.c new file mode 100644 index 00000000..fea9319d --- /dev/null +++ b/src/c/hardware/avr/uart/gAVRUARTTransmita.c @@ -0,0 +1,26 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Ashish Kamble + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ +//Function to Transmit String. + + +#include "AVRPeripheralUART.h" + + +uint8 gAVRUARTTransmita(uint8 *x, int size) +{ + int i = 0; + for (i = 0; i < size; ++i) + { + gAVRUARTTransmits(x[i]); + } + return 0; +} diff --git a/src/c/hardware/avr/uart/gAVRUARTTransmits.c b/src/c/hardware/avr/uart/gAVRUARTTransmits.c new file mode 100644 index 00000000..502f2727 --- /dev/null +++ b/src/c/hardware/avr/uart/gAVRUARTTransmits.c @@ -0,0 +1,31 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Ashish Kamble + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ +//Function to Transmit String. + + +#include "AVRPeripheralUART.h" + + +uint8 gAVRUARTTransmits(char* msg,int size) +{ + while(*msg!='\0') + { + while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer + UDR = *msg; // Put data into buffer, sends the data + msg++; + } +while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer + UDR = (10); // Put data into buffer, sends the data + while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer + UDR = (13); // Put data into buffer, sends the data + return 0; +} diff --git a/src/c/hardware/avr/uart/gAVRUARTTransmitu8.c b/src/c/hardware/avr/uart/gAVRUARTTransmitu8.c new file mode 100644 index 00000000..f3384068 --- /dev/null +++ b/src/c/hardware/avr/uart/gAVRUARTTransmitu8.c @@ -0,0 +1,24 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Ashish Kamble + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ +//Function to Transmit String. + + +#include "AVRPeripheralUART.h" + +uint8 gAVRUARTTransmitu8(uint8 *msg) +{ + while(*msg!='\0') + { + AVRUARTTransmitChar(*msg); + msg++; + } +} diff --git a/src/c/hardware/avr/uart/i16AVRUARTTransmita.c b/src/c/hardware/avr/uart/i16AVRUARTTransmita.c new file mode 100644 index 00000000..8d0fcd47 --- /dev/null +++ b/src/c/hardware/avr/uart/i16AVRUARTTransmita.c @@ -0,0 +1,27 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Ashish Kamble + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ +//Function to Transmit Signed Integer Values. + + +#include "AVRPeripheralUART.h" + +uint8 i16AVRUARTTransmita(int16 *x, int size) +{ + int i = 0; + for (i = 0; i < size; ++i) + { + i16AVRUARTTransmits(x[i]); + } + return 0; +} + + diff --git a/src/c/hardware/avr/uart/i16AVRUARTTransmits.c b/src/c/hardware/avr/uart/i16AVRUARTTransmits.c new file mode 100644 index 00000000..4d907762 --- /dev/null +++ b/src/c/hardware/avr/uart/i16AVRUARTTransmits.c @@ -0,0 +1,73 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Ashish Kamble + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ +//Function to Transmit Signed Integer Values. + + +#include "AVRPeripheralUART.h" + + +uint8 i16AVRUARTTransmits(int16 data) +{ + uint8 temp1; + uint8 temp2; + uint8 temp3; + uint8 temp4; + uint8 temp5; + if(data<0) + { + while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer + UDR = (45); // Put data into buffer, sends the data + } + data = abs(data); + temp1 = data/10000; + if(temp1==0); + else + { + while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer + UDR = (48+temp1); // Put data into buffer, sends the data + } + data = data % 10000; + temp2 = data/1000; + if((temp1==0)&(temp2==0)); + else + { + while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer + UDR = (48+temp2); // Put data into buffer, sends the data + } + data = data % 1000; + temp3 = data/100; + if((temp1==0)&(temp2==0)&(temp3==0)); + else + { + while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer + UDR = (48+temp3); // Put data into buffer, sends the data + } + data = data % 100; + temp4 = data/10; + if((temp1==0)&(temp2==0)&(temp3==0)&(temp4==0)); + else + { + while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer + UDR = (48+temp4); // Put data into buffer, sends the data + } + temp5 = data % 10; + while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer + UDR = (48+temp5); // Put data into buffer, sends the data + + + while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer + UDR = (10); // Put data into buffer, sends the data + while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer + UDR = (13); // Put data into buffer, sends the data + return 0; +} + diff --git a/src/c/hardware/avr/uart/i16AVRUARTTransmitu8.c b/src/c/hardware/avr/uart/i16AVRUARTTransmitu8.c new file mode 100644 index 00000000..99638c77 --- /dev/null +++ b/src/c/hardware/avr/uart/i16AVRUARTTransmitu8.c @@ -0,0 +1,31 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Ashish Kamble + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ +//Function to Transmit Signed Integer Values. + + +#include "AVRPeripheralUART.h" + +uint8 i16AVRUARTTransmitu8(int16 data) +{ + uint16 temp1; + uint16 temp2; + temp1 = abs(data)/100; + if(data<0) + AVRUARTTransmitChar(45); + AVRUARTTransmitChar(48+temp1); + temp1 = abs(data) - temp1*100; + temp2 = temp1; + temp1 = temp1/10; + AVRUARTTransmitChar(48+temp1); + temp2 = temp2 - temp1*10; + AVRUARTTransmitChar(48+temp2); +} diff --git a/src/c/hardware/avr/uart/i8AVRUARTTransmita.c b/src/c/hardware/avr/uart/i8AVRUARTTransmita.c new file mode 100644 index 00000000..10345738 --- /dev/null +++ b/src/c/hardware/avr/uart/i8AVRUARTTransmita.c @@ -0,0 +1,25 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Ashish Kamble + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ +//Function to Transmit Signed Integer Values. + + +#include "AVRPeripheralUART.h" + +uint8 i8AVRUARTTransmita(int8 *x,int size) +{ + int i = 0; + for (i = 0; i < size; ++i) + { + i8AVRUARTTransmits(x[i]); + } + return 0; +} diff --git a/src/c/hardware/avr/uart/i8AVRUARTTransmits.c b/src/c/hardware/avr/uart/i8AVRUARTTransmits.c new file mode 100644 index 00000000..6b8c20fb --- /dev/null +++ b/src/c/hardware/avr/uart/i8AVRUARTTransmits.c @@ -0,0 +1,26 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Ashish Kamble + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ +//Function to Transmit Signed Integer Values. + + +#include "AVRPeripheralUART.h" + +uint8 i8AVRUARTTransmits(int8 data) +{ + uint8 temp1; + temp1 = abs(data); + if(data<0) + while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer + UDR = (45); // Put data into buffer, sends the data + u8AVRUARTTransmits(temp1); + return 0; +} diff --git a/src/c/hardware/avr/uart/u16AVRUARTTransmita.c b/src/c/hardware/avr/uart/u16AVRUARTTransmita.c new file mode 100644 index 00000000..8b8e6301 --- /dev/null +++ b/src/c/hardware/avr/uart/u16AVRUARTTransmita.c @@ -0,0 +1,28 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Ashish Kamble + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ +//Function to Transmit Unsigned Integer Values. + +#include "AVRPeripheralUART.h" + +uint8 u16AVRUARTTransmita(uint16 *x, int size) +{ + int i = 0; + for (i = 0; i < size; ++i) + { + u16AVRUARTTransmits(x[i]); + } + return 0; +} + + + + diff --git a/src/c/hardware/avr/uart/u16AVRUARTTransmits.c b/src/c/hardware/avr/uart/u16AVRUARTTransmits.c new file mode 100644 index 00000000..3cfb4a27 --- /dev/null +++ b/src/c/hardware/avr/uart/u16AVRUARTTransmits.c @@ -0,0 +1,87 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Ashish Kamble + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ +//Function to Transmit Unsigned Integer Values. + +#include "AVRPeripheralUART.h" + +uint8 u16AVRUARTTransmits(uint16 data) +{ + uint8 temp1; + uint8 temp2; + uint8 temp3; + uint8 temp4; + uint8 temp5; + temp1 = data/10000; + if(temp1==0); + else + { + while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer + UDR = (48+temp1); // Put data into buffer, sends the data + } + data = data % 10000; + temp2 = data/1000; + if((temp1==0)&(temp2==0)); + else + { + while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer + UDR = (48+temp2); // Put data into buffer, sends the data + } + data = data % 1000; + temp3 = data/100; + if((temp1==0)&(temp2==0)&(temp3==0)); + else + { + while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer + UDR = (48+temp3); // Put data into buffer, sends the data + } + data = data % 100; + temp4 = data/10; + if((temp1==0)&(temp2==0)&(temp3==0)&(temp4==0)); + else + { + while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer + UDR = (48+temp4); // Put data into buffer, sends the data + } + temp5 = data % 10; + while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer + UDR = (48+temp5); // Put data into buffer, sends the data + + + while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer + UDR = (10); // Put data into buffer, sends the data + while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer + UDR = (13); // Put data into buffer, sends the data + return 0; +} + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/c/hardware/avr/uart/u16AVRUARTTransmitu8.c b/src/c/hardware/avr/uart/u16AVRUARTTransmitu8.c new file mode 100644 index 00000000..a68a5aa9 --- /dev/null +++ b/src/c/hardware/avr/uart/u16AVRUARTTransmitu8.c @@ -0,0 +1,38 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Ashish Kamble + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ +//Function to Transmit Unsigned Integer Values. + +#include "AVRPeripheralUART.h" + +uint8 u16AVRUARTTransmitu8(uint16 data) +{ + uint8 temp1; + uint8 temp2; + uint8 temp3; + uint8 temp4; + temp1 = data/10000; + dAVRUARTTransmitu8(48+temp1); + temp1 = data - temp1*10000; + temp2 = temp1; + temp1 = temp1/1000; + dAVRUARTTransmitu8(48+temp1); + temp1 = temp2 - temp1*1000; + temp3 = temp1; + temp1 = temp1/100; + dAVRUARTTransmitu8(48+temp1); + temp1 = temp3 - temp1*100; + temp4 = temp1; + temp1 = temp1/10; + dAVRUARTTransmitu8(48+temp1); + temp1 = temp4 - temp1*10; + dAVRUARTTransmitu8(48+temp1); +} diff --git a/src/c/hardware/avr/uart/u8AVRUARTReceiveCharu8.c b/src/c/hardware/avr/uart/u8AVRUARTReceiveCharu8.c new file mode 100644 index 00000000..df0a55b7 --- /dev/null +++ b/src/c/hardware/avr/uart/u8AVRUARTReceiveCharu8.c @@ -0,0 +1,20 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Ashish Kamble + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ +//Function to Receive Char. + +#include "AVRPeripheralUART.h" + +uint8 u8AVRUSARTReceiveCharu8() +{ + while ( !(UCSRA & (1<<RXC)) ) ; // Wait for data to be received + return UDR; // Get and return received data from buffer +} diff --git a/src/c/hardware/avr/uart/u8AVRUARTSetups.c b/src/c/hardware/avr/uart/u8AVRUARTSetups.c new file mode 100644 index 00000000..085ac6e3 --- /dev/null +++ b/src/c/hardware/avr/uart/u8AVRUARTSetups.c @@ -0,0 +1,143 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Ashish Kamble + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ +//Function to Setup Serial communication for ATmega16. + + +#include "AVRPeripheralUART.h" + +uint8 u8AVRUARTSetups(uint8 mode, uint32 baudrate, uint8 stopbits, uint8 parity) +{ +//Enable UART and USART + UCSRC |= (1<<URSEL); + UCSRB |= (1<<TXEN)|(1<<RXEN); + + switch (mode) //According to mode set bits UMSEL and U2X +{ + case 0: //Normal mode + UCSRC &= ~(1<<UMSEL); //Clear bit 6 UMSEL and U2X=0 + UCSRA &= ~(1<<U2X); + UCSRC &= ~(1<<UCPOL); // Clock polarity bit + break; + + case 1: //Double speed mode + UCSRC &= ~(1<<UMSEL); //Clear bit 6 UMSEL and U2X=1 + UCSRA |= (1<<U2X); + UCSRC &= ~(1<<UCPOL); //Clock polarity bit + break; + + case 2: //Synchronous mode + UCSRC |= (1<<UMSEL); //Set bit 6 UMSEL and set clock polarity + UCSRC |= (1<<UCPOL); + break; +} + +//Set stop bits +if(stopbits == 0) +{ + UCSRC &= ~(1<<USBS); // 1 stopbit +} +else UCSRC |= (1<<USBS); //2 stopbits + +//Set parity bit settings +switch(parity) +{ + case 0: // Parity disabled + UCSRC &= ~(1<<UPM1); //UPM1:0=0 + UCSRC &= ~(1<<UPM0); + break; + + case 1: // Even parity + UCSRC |= (1<<UPM1); //UPM1:0 = 2 + UCSRC &= ~(1<<UPM0); + break; + + case 2: // Odd parity + UCSRC |= (1<<UPM1); //UPM1:1 = 3 + UCSRC |= (1<<UPM0); + break; +} + +//Set baudrate +UCSRC &= ~(1<<URSEL); +switch(baudrate) +{ + case 2400: + UBRRL = 0xA0; + UBRRH = 0x01; + break; + + case 4800: + UBRRL = 0xCF; + UBRRH = 0x00; + break; + + case 9600: + UBRRL = 0x67; + UBRRH = 0x00; + break; + + case 14400: + UBRRL = 0x44; + UBRRH = 0x00; + break; + + case 19200: + UBRRL = 0x33; + UBRRH = 0x00; + break; + + case 28800: + UBRRL = 0x22; + UBRRH = 0x00; + break; + + case 38400: + UBRRL = 0x19; + UBRRH = 0x00; + break; + + case 57600: + UBRRL = 0x10; + UBRRH = 0x00; + break; + + case 768000: + UBRRL = 0x0C; + UBRRH = 0x00; + break; + + case 115200: + UBRRL = 0x08; + UBRRH = 0x00; + break; + + case 230400: + UBRRL = 0x03; + UBRRH = 0x00; + break; + + case 250000: + UBRRL = 0x03; + UBRRH = 0x00; + break; + + case 1000000: + UBRRL = 0x00; + UBRRH = 0x00; + break; +} + +//Set data format +UCSRC|= (1<<URSEL)|(1<<UCSZ0)|(1<<UCSZ1); + + return 0; +} diff --git a/src/c/hardware/avr/uart/u8AVRUARTTransmita.c b/src/c/hardware/avr/uart/u8AVRUARTTransmita.c new file mode 100644 index 00000000..14e2a0ea --- /dev/null +++ b/src/c/hardware/avr/uart/u8AVRUARTTransmita.c @@ -0,0 +1,26 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Ashish Kamble + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ +//Function to Transmit Char. + + +#include "AVRPeripheralUART.h" + + +uint8 u8AVRUARTTransmita(uint8* x, int size) +{ + int i = 0; + for (i = 0; i < size; ++i) + { + u8AVRUARTTransmits(x[i]); + } + return 0; +} diff --git a/src/c/hardware/avr/uart/u8AVRUARTTransmits.c b/src/c/hardware/avr/uart/u8AVRUARTTransmits.c new file mode 100644 index 00000000..e7e5c716 --- /dev/null +++ b/src/c/hardware/avr/uart/u8AVRUARTTransmits.c @@ -0,0 +1,60 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Ashish Kamble + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ +//Function to Transmit Char. + + +#include "AVRPeripheralUART.h" + +uint8 u8AVRUARTTransmits(uint8 data) +{ + uint8 temp1; + uint8 temp2; + temp1 = data; + data = data/100; + if(data==0); + else + { + while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer + UDR = (48+data); // Put data into buffer, sends the data + } + temp1 = temp1 - data*100; + temp2 = temp1; + temp1 = temp1/10; + if((data==0)&(temp1==0)); + else + { + while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer + UDR = (48+temp1); // Put data into buffer, sends the data + } + temp2 = temp2 - temp1*10; + while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer + UDR = (48+temp2); // Put data into buffer, sends the data + + while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer + UDR = (10); // Put data into buffer, sends the data + while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer + UDR = (13); // Put data into buffer, sends the data + return 0; +} + + + + + + + + + + + + + diff --git a/src/c/hardware/avr/util/u16AVRSleeps.c b/src/c/hardware/avr/util/u16AVRSleeps.c new file mode 100644 index 00000000..9fbd512d --- /dev/null +++ b/src/c/hardware/avr/util/u16AVRSleeps.c @@ -0,0 +1,21 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Organization: FOSSEE, IIT Bombay + Author: Siddhesh Wani + Email: toolbox@scilab.in +*/ +//Function to introduce specific delay in milliseconds + +#include "AVRUtil.h" + +uint8 u16AVRSleeps (uint16 delay) +{ + _delay_ms(delay); + + return 0; +} diff --git a/src/c/hardware/rasberrypi/Digital/RPI_digitalReadByte.c b/src/c/hardware/rasberrypi/Digital/RPI_digitalReadByte.c new file mode 100644 index 00000000..70fb6858 --- /dev/null +++ b/src/c/hardware/rasberrypi/Digital/RPI_digitalReadByte.c @@ -0,0 +1,21 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralDigital.h" + +/* Function to read the state of the first eight gpio pins */ + +uint8 RPI_digitalReadByte(){ + uint8 state=0; + state=digitalReadByte(); + return (state); +} diff --git a/src/c/hardware/rasberrypi/Digital/u8RPI_digitalReads.c b/src/c/hardware/rasberrypi/Digital/u8RPI_digitalReads.c new file mode 100644 index 00000000..05594066 --- /dev/null +++ b/src/c/hardware/rasberrypi/Digital/u8RPI_digitalReads.c @@ -0,0 +1,21 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani, Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralDigital.h" + +/* Function to read the state of a gpio pin */ + +uint8 u8RPI_digitalReads(uint8 pin){ + uint8 state=0; + state=digitalRead(pin); + return (state); +} diff --git a/src/c/hardware/rasberrypi/Digital/u8RPI_digitalWriteBytes.c b/src/c/hardware/rasberrypi/Digital/u8RPI_digitalWriteBytes.c new file mode 100644 index 00000000..6d0e4cdd --- /dev/null +++ b/src/c/hardware/rasberrypi/Digital/u8RPI_digitalWriteBytes.c @@ -0,0 +1,19 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralDigital.h" + +/* Function to change the output state of the first eight gpio pins */ + +void u8RPI_digitalWriteBytes(uint8 value){ + digitalWriteByte(value); +} diff --git a/src/c/hardware/rasberrypi/Digital/u8RPI_digitalWrites.c b/src/c/hardware/rasberrypi/Digital/u8RPI_digitalWrites.c new file mode 100644 index 00000000..02dce554 --- /dev/null +++ b/src/c/hardware/rasberrypi/Digital/u8RPI_digitalWrites.c @@ -0,0 +1,22 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani, Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralDigital.h" + +/* Function to change the output state of the gpio pin */ + +void u8RPI_digitalWrites(uint8 pin, uint8 state){ + if (state == 0) /*low output*/ + digitalWrite(pin,0); + else if (state == 1) /*high output*/ + digitalWrite(pin,1); +} diff --git a/src/c/hardware/rasberrypi/I2C/u16RPI_I2CReadReg16s.c b/src/c/hardware/rasberrypi/I2C/u16RPI_I2CReadReg16s.c new file mode 100644 index 00000000..5d04f4b0 --- /dev/null +++ b/src/c/hardware/rasberrypi/I2C/u16RPI_I2CReadReg16s.c @@ -0,0 +1,19 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralI2C.h" + +int8 u16RPI_I2CReadReg16s(uint16 fd,uint16 reg){ + int8 out; + out=wiringPiI2CReadReg16(fd,reg); + return (out); +} diff --git a/src/c/hardware/rasberrypi/I2C/u16RPI_I2CReadReg8s.c b/src/c/hardware/rasberrypi/I2C/u16RPI_I2CReadReg8s.c new file mode 100644 index 00000000..2f4f1f74 --- /dev/null +++ b/src/c/hardware/rasberrypi/I2C/u16RPI_I2CReadReg8s.c @@ -0,0 +1,19 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralI2C.h" + +int8 u16RPI_I2CReadReg8s(uint16 fd,uint16 reg){ + int8 out; + out=wiringPiI2CReadReg8(fd,reg); + return (out); +} diff --git a/src/c/hardware/rasberrypi/I2C/u16RPI_I2CReads.c b/src/c/hardware/rasberrypi/I2C/u16RPI_I2CReads.c new file mode 100644 index 00000000..49c36737 --- /dev/null +++ b/src/c/hardware/rasberrypi/I2C/u16RPI_I2CReads.c @@ -0,0 +1,19 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralI2C.h" + +int8 u16RPI_I2CReads(uint16 fd){ + int8 out; + out=wiringPiI2CRead(fd); + return (out); +} diff --git a/src/c/hardware/rasberrypi/I2C/u16RPI_I2CSetups.c b/src/c/hardware/rasberrypi/I2C/u16RPI_I2CSetups.c new file mode 100644 index 00000000..f533a1f2 --- /dev/null +++ b/src/c/hardware/rasberrypi/I2C/u16RPI_I2CSetups.c @@ -0,0 +1,19 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralI2C.h" + +int8 u16RPI_I2CSetups(uint8 arrd){ + int8 out; + out=wiringPiI2CSetup(arrd); + return (out); +} diff --git a/src/c/hardware/rasberrypi/I2C/u16RPI_I2CWriteReg16s.c b/src/c/hardware/rasberrypi/I2C/u16RPI_I2CWriteReg16s.c new file mode 100644 index 00000000..b30c106f --- /dev/null +++ b/src/c/hardware/rasberrypi/I2C/u16RPI_I2CWriteReg16s.c @@ -0,0 +1,19 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralI2C.h" + +int8 u16RPI_I2CWriteReg16s(uint16 fd,uint16 data,uint16 reg){ + int8 out; + out=wiringPiI2CWriteReg16(fd,data,reg); + return (out); +} diff --git a/src/c/hardware/rasberrypi/I2C/u16RPI_I2CWriteReg8s.c b/src/c/hardware/rasberrypi/I2C/u16RPI_I2CWriteReg8s.c new file mode 100644 index 00000000..d2ebf3d9 --- /dev/null +++ b/src/c/hardware/rasberrypi/I2C/u16RPI_I2CWriteReg8s.c @@ -0,0 +1,19 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralI2C.h" + +int8 u16RPI_I2CWriteReg8s(uint16 fd,uint16 data,uint16 reg){ + int8 out; + out=wiringPiI2CWriteReg8(fd,data,reg); + return (out); +} diff --git a/src/c/hardware/rasberrypi/I2C/u16RPI_I2CWrites.c b/src/c/hardware/rasberrypi/I2C/u16RPI_I2CWrites.c new file mode 100644 index 00000000..133ed659 --- /dev/null +++ b/src/c/hardware/rasberrypi/I2C/u16RPI_I2CWrites.c @@ -0,0 +1,19 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralI2C.h" + +int8 u16RPI_I2CWrites(uint16 fd,uint16 data){ + int8 out; + wiringPiI2CWrite(fd,data); + return (out); +} diff --git a/src/c/hardware/rasberrypi/Interrupt/u8RPI_waitForInterrupts.c b/src/c/hardware/rasberrypi/Interrupt/u8RPI_waitForInterrupts.c new file mode 100644 index 00000000..ab15b8de --- /dev/null +++ b/src/c/hardware/rasberrypi/Interrupt/u8RPI_waitForInterrupts.c @@ -0,0 +1,44 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralInterrupt.h" +#include "RPI_wfi.h" +#include <sys/time.h> +#include <math.h> +#include <stdlib.h> + +int8 u8RPI_waitForInterrupts(uint8 pin,int16 time){ + __RPI_wfi=0; + if (wiringPiISR(pin,3,&RPI_wfi)<0){ + return -1; + } + if (time==-1){ + while (__RPI_wfi==0){;} + return 1; + } + else{ + struct timeval time1,time2; + int nDigits; + double t1,t2; + gettimeofday(&time1, NULL); + nDigits=floor(log10(abs(time1.tv_usec)))+1; + t1=time1.tv_sec+time1.tv_usec/nDigits; + t2=t1; + while (__RPI_wfi==0 && t2-t1<time){ + gettimeofday(&time2,NULL); + nDigits=floor(log10(abs(time2.tv_usec)))+1; + t2=time2.tv_sec+time2.tv_usec/nDigits; + } + if (__RPI_wfi==0){return 0;} + else{return 1;} + } +} diff --git a/src/c/hardware/rasberrypi/Misc/RPI_boardRev.c b/src/c/hardware/rasberrypi/Misc/RPI_boardRev.c new file mode 100644 index 00000000..c8ecf705 --- /dev/null +++ b/src/c/hardware/rasberrypi/Misc/RPI_boardRev.c @@ -0,0 +1,19 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralMisc.h" + +uint8 RPI_boardRev(){ + uint8 out; + out=piBoardRev(); + return out; +} diff --git a/src/c/hardware/rasberrypi/Misc/u16RPI_sn3218Setups.c b/src/c/hardware/rasberrypi/Misc/u16RPI_sn3218Setups.c new file mode 100644 index 00000000..ab229907 --- /dev/null +++ b/src/c/hardware/rasberrypi/Misc/u16RPI_sn3218Setups.c @@ -0,0 +1,19 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralMisc.h" + +int8 u16RPI_sn3218Setups(uint16 pinBase){ + int8 out; + out=sn3218Setup(pinBase); + return (out); +} diff --git a/src/c/hardware/rasberrypi/Misc/u8RPI_padDrives.c b/src/c/hardware/rasberrypi/Misc/u8RPI_padDrives.c new file mode 100644 index 00000000..ce13e08a --- /dev/null +++ b/src/c/hardware/rasberrypi/Misc/u8RPI_padDrives.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralMisc.h" + +void u8RPI_padDrives(uint8 group,uint8 strength){ + setPadDrive(group,strength); +} diff --git a/src/c/hardware/rasberrypi/Serial/gRPI_serialOpena.c b/src/c/hardware/rasberrypi/Serial/gRPI_serialOpena.c new file mode 100644 index 00000000..31543afe --- /dev/null +++ b/src/c/hardware/rasberrypi/Serial/gRPI_serialOpena.c @@ -0,0 +1,19 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralSerial.h" + +int8 gRPI_serialOpena(char* device,int size,uint32 baud){ + int8 fd; + fd = serialOpen(device,baud); + return fd; +} diff --git a/src/c/hardware/rasberrypi/Serial/u8RPI_serialCloses.c b/src/c/hardware/rasberrypi/Serial/u8RPI_serialCloses.c new file mode 100644 index 00000000..d20aa541 --- /dev/null +++ b/src/c/hardware/rasberrypi/Serial/u8RPI_serialCloses.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralSerial.h" + +void u8RPI_serialCloses(uint8 fd){ + serialClose(fd); +} diff --git a/src/c/hardware/rasberrypi/Serial/u8RPI_serialDataAvails.c b/src/c/hardware/rasberrypi/Serial/u8RPI_serialDataAvails.c new file mode 100644 index 00000000..cf256070 --- /dev/null +++ b/src/c/hardware/rasberrypi/Serial/u8RPI_serialDataAvails.c @@ -0,0 +1,19 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralSerial.h" + +uint8 u8RPI_serialDataAvails(uint8 fd){ + uint8 out; + out=serialDataAvail(fd); + return(out); +} diff --git a/src/c/hardware/rasberrypi/Serial/u8RPI_serialFlushs.c b/src/c/hardware/rasberrypi/Serial/u8RPI_serialFlushs.c new file mode 100644 index 00000000..4d150637 --- /dev/null +++ b/src/c/hardware/rasberrypi/Serial/u8RPI_serialFlushs.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralSerial.h" + +void u8RPI_serialFlushs(uint8 fd){ + serialFlush(fd); +} diff --git a/src/c/hardware/rasberrypi/Serial/u8RPI_serialGetchars.c b/src/c/hardware/rasberrypi/Serial/u8RPI_serialGetchars.c new file mode 100644 index 00000000..c1dabfd1 --- /dev/null +++ b/src/c/hardware/rasberrypi/Serial/u8RPI_serialGetchars.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralSerial.h" + +void u8RPI_serialGetchars(uint8 fd,char* out){ + out=serialGetchar(fd); +} diff --git a/src/c/hardware/rasberrypi/Serial/u8RPI_serialPrintfs.c b/src/c/hardware/rasberrypi/Serial/u8RPI_serialPrintfs.c new file mode 100644 index 00000000..d1672003 --- /dev/null +++ b/src/c/hardware/rasberrypi/Serial/u8RPI_serialPrintfs.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralSerial.h" + +void u8RPI_serialPrintfs(uint8 fd,char* msg,int size){ + serialPrintf(fd,msg); +} diff --git a/src/c/hardware/rasberrypi/Serial/u8RPI_serialPutchars.c b/src/c/hardware/rasberrypi/Serial/u8RPI_serialPutchars.c new file mode 100644 index 00000000..3309317e --- /dev/null +++ b/src/c/hardware/rasberrypi/Serial/u8RPI_serialPutchars.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralSerial.h" + +void u8RPI_serialPutchars(uint8 fd,uint8 character){ + serialPutchar(fd,character); +} diff --git a/src/c/hardware/rasberrypi/Serial/u8RPI_serialPutss.c b/src/c/hardware/rasberrypi/Serial/u8RPI_serialPutss.c new file mode 100644 index 00000000..581e15ac --- /dev/null +++ b/src/c/hardware/rasberrypi/Serial/u8RPI_serialPutss.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralSerial.h" + +void u8RPI_serialPutss(uint8 fd,char* character,int size){ + serialPuts(fd,character); +} diff --git a/src/c/hardware/rasberrypi/Setup/gRPI_pinNumberinga.c b/src/c/hardware/rasberrypi/Setup/gRPI_pinNumberinga.c new file mode 100644 index 00000000..4170f4c1 --- /dev/null +++ b/src/c/hardware/rasberrypi/Setup/gRPI_pinNumberinga.c @@ -0,0 +1,28 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralSetup.h" +#include "stdio.h" + +int8 gRPI_pinNumberinga(char* seq,int size){ + uint8 out; + if (seq[0]=='w'){ + out=wiringPiSetup(); + } + else if (seq[0]=='G'){ + out=wiringPiSetupGpio(); + } + else if (seq[0]=='P'){ + out=wiringPiSetupPhys(); + } + return (out); +} diff --git a/src/c/hardware/rasberrypi/Setup/u8RPI_getAlts.c b/src/c/hardware/rasberrypi/Setup/u8RPI_getAlts.c new file mode 100644 index 00000000..0a5c4764 --- /dev/null +++ b/src/c/hardware/rasberrypi/Setup/u8RPI_getAlts.c @@ -0,0 +1,19 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralSetup.h" + +uint8 u8RPI_getAlts(uint8 pin){ + uint8 out; + out=getAlt(pin); + return (out); +} diff --git a/src/c/hardware/rasberrypi/Setup/u8RPI_pinModeAlts.c b/src/c/hardware/rasberrypi/Setup/u8RPI_pinModeAlts.c new file mode 100644 index 00000000..153b88ee --- /dev/null +++ b/src/c/hardware/rasberrypi/Setup/u8RPI_pinModeAlts.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralSetup.h" + +void u8RPI_pinModeAlts(uint8 pin,uint8 mode){ + pinModeAlt(pin,mode); +} diff --git a/src/c/hardware/rasberrypi/Setup/u8RPI_pinModes.c b/src/c/hardware/rasberrypi/Setup/u8RPI_pinModes.c new file mode 100644 index 00000000..76601f8d --- /dev/null +++ b/src/c/hardware/rasberrypi/Setup/u8RPI_pinModes.c @@ -0,0 +1,31 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include <stdio.h> +#include "types.h" +#include "RPIPeripheralSetup.h" + +void u8RPI_pinModes(uint8 pin,char* mode,int size){ + if (mode[0]=='i'){ + pinMode(pin,INPUT); + } + else if (mode[0]=='o'){ + pinMode(pin,OUTPUT); + } + else if (mode[0]=='p'){ + pinMode(pin,PWM_OUTPUT); + } + else if (mode[0]=='c'){ + pinMode(pin,GPIO_CLOCK); + } + +} diff --git a/src/c/hardware/rasberrypi/Setup/u8RPI_pullControls.c b/src/c/hardware/rasberrypi/Setup/u8RPI_pullControls.c new file mode 100644 index 00000000..4e95aac5 --- /dev/null +++ b/src/c/hardware/rasberrypi/Setup/u8RPI_pullControls.c @@ -0,0 +1,25 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralSetup.h" + +void u8RPI_pullControls(uint8 pin,char* mode,int size){ + if (mode[0]=='d'){ + pullUpDnControl(pin,1); + } + else if (mode[0]=='u'){ + pullUpDnControl(pin,2); + } + else if (mode[0]=='o'){ + pullUpDnControl(pin,0); + } +} diff --git a/src/c/hardware/rasberrypi/Shift/u16RPI_sr595Setups.c b/src/c/hardware/rasberrypi/Shift/u16RPI_sr595Setups.c new file mode 100644 index 00000000..3f0a6493 --- /dev/null +++ b/src/c/hardware/rasberrypi/Shift/u16RPI_sr595Setups.c @@ -0,0 +1,20 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralShift.h" + +int8 u16RPI_sr595Setups(uint16 pinBase,uint8 nPins,uint8 dP,uint8 cP,uint8 lP) +{ + int8 out; + out=sr595Setup(pinBase,nPins,dP,cP,lP); + return (out); +} diff --git a/src/c/hardware/rasberrypi/Shift/u8RPI_shiftIns.c b/src/c/hardware/rasberrypi/Shift/u8RPI_shiftIns.c new file mode 100644 index 00000000..6a264b6a --- /dev/null +++ b/src/c/hardware/rasberrypi/Shift/u8RPI_shiftIns.c @@ -0,0 +1,19 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralShift.h" + +uint8 u8RPI_shiftIns(uint8 dpin,uint8 cpin,uint8 order){ + uint8 out; + out=shiftIn(dpin,cpin,order); + return out; +} diff --git a/src/c/hardware/rasberrypi/Shift/u8RPI_shiftOuts.c b/src/c/hardware/rasberrypi/Shift/u8RPI_shiftOuts.c new file mode 100644 index 00000000..5d24c2b9 --- /dev/null +++ b/src/c/hardware/rasberrypi/Shift/u8RPI_shiftOuts.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralShift.h" + +void u8RPI_shiftOuts(uint8 dpin,uint8 cpin,uint8 order,uint8 val){ + shiftOut(dpin,cpin,order,val); +} diff --git a/src/c/hardware/rasberrypi/Timing/RPI_micros.c b/src/c/hardware/rasberrypi/Timing/RPI_micros.c new file mode 100644 index 00000000..a7a84503 --- /dev/null +++ b/src/c/hardware/rasberrypi/Timing/RPI_micros.c @@ -0,0 +1,21 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani, Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralTiming.h" + +/* Function to get time in microsecond since first setup function called */ + +uint32 RPI_micros(){ + uint32 out; + out=micros(); + return (out); +} diff --git a/src/c/hardware/rasberrypi/Timing/RPI_millis.c b/src/c/hardware/rasberrypi/Timing/RPI_millis.c new file mode 100644 index 00000000..b383f2a9 --- /dev/null +++ b/src/c/hardware/rasberrypi/Timing/RPI_millis.c @@ -0,0 +1,21 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani, Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralTiming.h" + +/* Function to get time in millisecond since first setup function called */ + +uint32 RPI_millis(){ + uint32 out; + out=millis(); + return (out); +} diff --git a/src/c/hardware/rasberrypi/Timing/u32RPI_delayMicros.c b/src/c/hardware/rasberrypi/Timing/u32RPI_delayMicros.c new file mode 100644 index 00000000..1ffdda7e --- /dev/null +++ b/src/c/hardware/rasberrypi/Timing/u32RPI_delayMicros.c @@ -0,0 +1,19 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani, Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralTiming.h" + +/* Function to insert some delay in code execution. */ + +void u32RPI_delayMicros(uint32 time){ + delayMicroseconds(time); +} diff --git a/src/c/hardware/rasberrypi/Timing/u32RPI_delays.c b/src/c/hardware/rasberrypi/Timing/u32RPI_delays.c new file mode 100644 index 00000000..7802d6bf --- /dev/null +++ b/src/c/hardware/rasberrypi/Timing/u32RPI_delays.c @@ -0,0 +1,19 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani, Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralTiming.h" + +/* Function to insert some delay in code execution. */ + +void u32RPI_delays(uint32 time){ + delay(time); +} diff --git a/src/c/hardware/rasberrypi/gertBoard/RPI_gertboardSPISetup.c b/src/c/hardware/rasberrypi/gertBoard/RPI_gertboardSPISetup.c new file mode 100644 index 00000000..5724ebb4 --- /dev/null +++ b/src/c/hardware/rasberrypi/gertBoard/RPI_gertboardSPISetup.c @@ -0,0 +1,19 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralGertboard.h" + +int8 RPI_gertboardSPISetup(){ + int8 out; + out=gertboardSPISetup(); + return (out); +} diff --git a/src/c/hardware/rasberrypi/gertBoard/u16RPI_gertboardAnalogReads.c b/src/c/hardware/rasberrypi/gertBoard/u16RPI_gertboardAnalogReads.c new file mode 100644 index 00000000..433bed29 --- /dev/null +++ b/src/c/hardware/rasberrypi/gertBoard/u16RPI_gertboardAnalogReads.c @@ -0,0 +1,19 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralGertboard.h" + +uint16 u16RPI_gertboardAnalogReads(uint16 pin){ + uint16 out; + out=gertboardAnalogRead(pin); + return (out); +} diff --git a/src/c/hardware/rasberrypi/gertBoard/u16RPI_gertboardAnalogSetups.c b/src/c/hardware/rasberrypi/gertBoard/u16RPI_gertboardAnalogSetups.c new file mode 100644 index 00000000..a19aa6d0 --- /dev/null +++ b/src/c/hardware/rasberrypi/gertBoard/u16RPI_gertboardAnalogSetups.c @@ -0,0 +1,19 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralGertboard.h" + +int8 u16RPI_gertboardAnalogSetups(uint16 pinBase){ + int8 out; + out=gertboardAnalogSetup(pinBase); + return (out); +} diff --git a/src/c/hardware/rasberrypi/gertBoard/u16RPI_gertboardAnalogWrites.c b/src/c/hardware/rasberrypi/gertBoard/u16RPI_gertboardAnalogWrites.c new file mode 100644 index 00000000..2c8aa338 --- /dev/null +++ b/src/c/hardware/rasberrypi/gertBoard/u16RPI_gertboardAnalogWrites.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralGertboard.h" + +void u16RPI_gertboardAnalogWrites(uint16 pin,uint16 value){ + gertboardAnalogWrite(pin,value); +} diff --git a/src/c/hardware/rasberrypi/includes/RPIPeripheralDigital.h b/src/c/hardware/rasberrypi/includes/RPIPeripheralDigital.h new file mode 100644 index 00000000..22d470a2 --- /dev/null +++ b/src/c/hardware/rasberrypi/includes/RPIPeripheralDigital.h @@ -0,0 +1,33 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +/* This file declares functions and constants related to GPIO pins*/ + +#ifndef __RPIPERIPHERALGPIO_H__ +#define __RPIPERIPHERALGPIO_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "types.h" + +uint8 u8RPI_digitalReads(uint8 pin); +uint8 RPI_digitalReadByte(); +void u8RPI_digitalWrites(uint8 pin, uint8 state); +void u8RPI_digitalWriteBytes(uint8 value); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__RPIPERIPHERALGPIO_H__*/ diff --git a/src/c/hardware/rasberrypi/includes/RPIPeripheralGertboard.h b/src/c/hardware/rasberrypi/includes/RPIPeripheralGertboard.h new file mode 100644 index 00000000..3594d0a1 --- /dev/null +++ b/src/c/hardware/rasberrypi/includes/RPIPeripheralGertboard.h @@ -0,0 +1,32 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani, Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#ifndef __RPIPERIPHERALGERTBOARD_H__ +#define __RPIPERIPHERALGERTBOARD_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "types.h" +#include "gertboard.h" + +int8 RPI_gertboardSPISetup(); +uint16 u16RPI_gertboardAnalogReads(uint16 pin); +int8 u16RPI_gertboardAnalogSetups(uint16 pinBase); +void u16RPI_gertboardAnalogWrites(uint16 pin,uint16 value); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__RPIPERIPHERALGERTBOARD_H__*/ diff --git a/src/c/hardware/rasberrypi/includes/RPIPeripheralI2C.h b/src/c/hardware/rasberrypi/includes/RPIPeripheralI2C.h new file mode 100644 index 00000000..6c8dfe14 --- /dev/null +++ b/src/c/hardware/rasberrypi/includes/RPIPeripheralI2C.h @@ -0,0 +1,37 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani, Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +/* This file declares functions and constants related to rasberrypi*/ + +#ifndef __RPIPERIPHERALI2C_H__ +#define __RPIPERIPHERALI2C_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "types.h" +#include "wiringPiI2C.h" + +int8 u16RPI_I2CSetups(uint8 arrd); +int8 u16RPI_I2CReads(uint16 fd); +int8 u16RPI_I2CReadReg8s(uint16 fd,uint16 reg); +int8 u16RPI_I2CReadReg16s(uint16 fd,uint16 reg); +int8 u16RPI_I2CWrites(uint16 fd,uint16 data); +int8 u16RPI_I2CWriteReg8s(uint16 fd,uint16 reg,uint16 data); +int8 u16RPI_I2CWriteReg16s(uint16 fd,uint16 reg,uint16 data); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__RPIPERIPHERALI2C_H__*/ diff --git a/src/c/hardware/rasberrypi/includes/RPIPeripheralInterrupt.h b/src/c/hardware/rasberrypi/includes/RPIPeripheralInterrupt.h new file mode 100644 index 00000000..d9fc30f3 --- /dev/null +++ b/src/c/hardware/rasberrypi/includes/RPIPeripheralInterrupt.h @@ -0,0 +1,27 @@ + /* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani, Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in + */ +#ifndef __RPIPERIPHERALINTERRUPT_H__ +#define __RPIPERIPHERALINTERRUPT_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "types.h" + +int8 u8RPI_waitForInterrupts(uint8 pin,int16 time); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__RPIPERIPHERALINTERRUPT_H__*/ diff --git a/src/c/hardware/rasberrypi/includes/RPIPeripheralLCD.h b/src/c/hardware/rasberrypi/includes/RPIPeripheralLCD.h new file mode 100644 index 00000000..654a31a3 --- /dev/null +++ b/src/c/hardware/rasberrypi/includes/RPIPeripheralLCD.h @@ -0,0 +1,39 @@ + /* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in + */ +#ifndef __RPIPERIPHERALLCD_H__ +#define __RPIPERIPHERALLCD_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "types.h" +#include "lcd.h" + +void u8RPI_lcdCharDefs(uint8 fd,uint8 index,uint8 d0,uint8 d1,uint8 d2,uint8 d3, uint8 d4,uint8 d5,uint8 d6,uint8 d7); +void u8RPI_lcdClears(uint8 fd); +void u8RPI_lcdCursorBlinks(uint8 fd,uint8 state); +void u8RPI_lcdCursors(uint8 fd,uint8 state); +void u8RPI_lcdDisplays(uint8 fd,uint8 state); +void u8RPI_lcdHomes(uint8 fd); +int8 u8RPI_lcdInits(uint8 rows,uint8 cols,uint8 bits,uint8 rs,uint8 strb,uint8 d0,uint8 d1,uint8 d2,uint8 d3,uint8 d4,uint8 d5,uint8 d6,uint8 d7); +void u8RPI_lcdPositions(uint8 fd,uint8 row,uint8 col); +void u8RPI_lcdPutchars(uint8 fd,uint8 character); +void u8RPI_lcdSendCommands(uint8 fd,uint8 cmd); +void u8RPI_lcdPutss(uint8 fd,char* msg,int size); +void u8RPI_lcdPrintfs(uint8 fd,char* data,int size); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__RPIPERIPHERALLCD_H__*/ diff --git a/src/c/hardware/rasberrypi/includes/RPIPeripheralLCD128x64.h b/src/c/hardware/rasberrypi/includes/RPIPeripheralLCD128x64.h new file mode 100644 index 00000000..93bdf279 --- /dev/null +++ b/src/c/hardware/rasberrypi/includes/RPIPeripheralLCD128x64.h @@ -0,0 +1,47 @@ + /* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in + */ +#ifndef __RPIPERIPHERALLCD128x64_H__ +#define __RPIPERIPHERALLCD128x64_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "types.h" +#include "lcd128x64.h" + +int8 RPI_lcd128x64setup(void); +void u8RPI_lcd128x64clears(uint8 colour); +void u8RPI_lcd128x64Orientations(uint8 orientation); + +void u8RPI_lcd128x64setOrigins(uint8 x, uint8 y); + +void u8RPI_lcd128x64points(uint8 x, uint8 y, uint8 colour); +void u8RPI_lcd128x64lineTos(uint8 x, uint8 y, uint8 colour); + +void u8RPI_lcd128x64lines(uint8 x0, uint8 y0, uint8 x1, uint8 y1, uint8 colour); +void u8RPI_lcd128x64circles(uint8 x, uint8 y, uint8 r, uint8 colour, uint8 filled); +void u8RPI_lcd128x64putchars(uint8 x, uint8 y, uint8 c, uint8 bgCol, uint8 fgCol); +void u8RPI_lcd128x64putss(uint8 x, uint8 y, char *str,int size, uint8 bgCol, uint8 fgCol); + +void u8RPI_lcd128x64rectangles(uint8 x1, uint8 y1, uint8 x2, uint8 y2, uint8 colour, uint8 filled); +void u8RPI_lcd128x64ellipses(uint8 cx, uint8 cy, uint8 xRadius, uint8 yRadius, uint8 colour, uint8 filled); + +//void u8RPI_lcd128x64orientCoordinatess(uint8 *x, uint8 *y); +//void u8RPI_lcd128x64getScreenSizes(uint8 *x, uint8 *y); +//void RPI_lcd128x64update(void); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__RPIPERIPHERALLCD128x64_H__*/ diff --git a/src/c/hardware/rasberrypi/includes/RPIPeripheralMcp.h b/src/c/hardware/rasberrypi/includes/RPIPeripheralMcp.h new file mode 100644 index 00000000..5304f14b --- /dev/null +++ b/src/c/hardware/rasberrypi/includes/RPIPeripheralMcp.h @@ -0,0 +1,36 @@ + /* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani, Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in + */ +#ifndef __RPIPERIPHERALMCP_H__ +#define __RPIPERIPHERALMCP_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "types.h" +#include "mcp23016.h" +#include "mcp23017.h" +#include "mcp23008.h" +#include "mcp23s17.h" +#include "mcp23s08.h" + +uint8 u16RPI_mcp23008Setups(uint16 pinBase,uint8 addr); +uint8 u16RPI_mcp23016Setups(uint16 pinBase,uint8 addr); +uint8 u16RPI_mcp23017Setups(uint16 pinBase,uint8 addr); +uint8 u16RPI_mcp23s08Setups(uint16 pinBase,uint8 spiport,uint8 devId); +uint8 u16RPI_mcp23s17Setups(uint16 pinBase,uint8 spiport,uint8 devId); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__RPIPERIPHERALMCP_H__*/ diff --git a/src/c/hardware/rasberrypi/includes/RPIPeripheralMisc.h b/src/c/hardware/rasberrypi/includes/RPIPeripheralMisc.h new file mode 100644 index 00000000..0ef5acc1 --- /dev/null +++ b/src/c/hardware/rasberrypi/includes/RPIPeripheralMisc.h @@ -0,0 +1,31 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani, Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#ifndef __RPIPERIPHERALMISC_H__ +#define __RPIPERIPHERALMISC_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "types.h" +#include "sn3218.h" + +uint8 RPI_boardRev(); +void u8RPI_padDrives(uint8 group,uint8 strength); +int8 u16RPI_sn3218Setups(uint16 pinBase); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__RPIPERIPHERALMISC_H__*/ diff --git a/src/c/hardware/rasberrypi/includes/RPIPeripheralPWM.h b/src/c/hardware/rasberrypi/includes/RPIPeripheralPWM.h new file mode 100644 index 00000000..f1d3024e --- /dev/null +++ b/src/c/hardware/rasberrypi/includes/RPIPeripheralPWM.h @@ -0,0 +1,31 @@ + /* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani, Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in + */ +#ifndef __RPIPERIPHERALPWM_H__ +#define __RPIPERIPHERALPWM_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "types.h" + +void u8RPI_pwmWrites(uint8 pin,uint16 value); +void u32RPI_pwmRanges(uint32 value); +void gRPI_pwmModea(char* mode,int size); +void u16RPI_pwmClocks(uint16 divisor); +void u8RPI_pwmToneWrites(uint8 pin,uint16 value); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__RPIPERIPHERALPWM_H__*/ diff --git a/src/c/hardware/rasberrypi/includes/RPIPeripheralPcf.h b/src/c/hardware/rasberrypi/includes/RPIPeripheralPcf.h new file mode 100644 index 00000000..55459332 --- /dev/null +++ b/src/c/hardware/rasberrypi/includes/RPIPeripheralPcf.h @@ -0,0 +1,30 @@ + /* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani, Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in + */ +#ifndef __RPIPERIPHERALPCF_H__ +#define __RPIPERIPHERALPCF_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "types.h" +#include "pcf8574.h" +#include "pcf8591.h" + +uint8 u16RPI_pcf8574Setups(uint16 pinBase,uint8 addr); +uint8 u16RPI_pcf8591Setups(uint16 pinBase,uint8 addr); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__RPIPERIPHERALPCF_H__*/ diff --git a/src/c/hardware/rasberrypi/includes/RPIPeripheralPiGlow.h b/src/c/hardware/rasberrypi/includes/RPIPeripheralPiGlow.h new file mode 100644 index 00000000..d2dcd13c --- /dev/null +++ b/src/c/hardware/rasberrypi/includes/RPIPeripheralPiGlow.h @@ -0,0 +1,31 @@ + /* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani, Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in + */ +#ifndef __RPIPERIPHERALPIGLOW_H__ +#define __RPIPERIPHERALPIGLOW_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "types.h" +#include "piGlow.h" + +void u8RPI_piGlowSetups(uint8 clear); +void u8RPI_piGlow1s(uint8 leg,uint8 ring,uint8 intensity); +void u8RPI_piGlowLegs(uint8 leg,uint8 intensity); +void u8RPI_piGlowRings(uint8 ring,uint8 intensity); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__RPIPERIPHERALPIGLOW_H__*/ diff --git a/src/c/hardware/rasberrypi/includes/RPIPeripheralPinMap.h b/src/c/hardware/rasberrypi/includes/RPIPeripheralPinMap.h new file mode 100644 index 00000000..39c2379d --- /dev/null +++ b/src/c/hardware/rasberrypi/includes/RPIPeripheralPinMap.h @@ -0,0 +1,28 @@ + /* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani, Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in + */ +#ifndef __RPIPERIPHERALPINMAP_H__ +#define __RPIPERIPHERALPINMAP_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "types.h" + +int8 u8RPI_physToGpios(uint8 pin); +int8 u8RPI_wpiToGpios(uint8 pin); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__RPIPERIPHERALPINMAP_H__*/ diff --git a/src/c/hardware/rasberrypi/includes/RPIPeripheralSerial.h b/src/c/hardware/rasberrypi/includes/RPIPeripheralSerial.h new file mode 100644 index 00000000..67284bd0 --- /dev/null +++ b/src/c/hardware/rasberrypi/includes/RPIPeripheralSerial.h @@ -0,0 +1,35 @@ + /* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani, Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in + */ +#ifndef __RPIPERIPHERALSERIAL_H__ +#define __RPIPERIPHERALSERIAL_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "types.h" +#include "wiringSerial.h" + +int8 gRPI_serialOpena(char* device,int size,uint32 baud); +void u8RPI_serialCloses(uint8 fd); +uint8 u8RPI_serialDataAvails(uint8 fd); +void u8RPI_serialFlushs(uint8 fd); +void u8RPI_serialGetchars(uint8 fd,char* out); +void u8RPI_serialPrintfs(uint8 fd,char* msg,int size); +void u8RPI_serialPutchars(uint8 fd,uint8 character); +void u8RPI_serialPutss(uint8 fd,char* character,int size); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__RPIPERIPHERALSERIAL_H__*/ diff --git a/src/c/hardware/rasberrypi/includes/RPIPeripheralSetup.h b/src/c/hardware/rasberrypi/includes/RPIPeripheralSetup.h new file mode 100644 index 00000000..373f0648 --- /dev/null +++ b/src/c/hardware/rasberrypi/includes/RPIPeripheralSetup.h @@ -0,0 +1,35 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani, Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +/* This file declares functions and constants related to Setup*/ + +#ifndef __RPIPERIPHERALSETUP_H__ +#define __RPIPERIPHERALSETUP_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "types.h" +#include "wiringPi.h" + +int8 gRPI_pinNumberinga(char* seq,int size); +uint8 u8RPI_getAlts(uint8 pin); +void u8RPI_pinModeAlts(uint8 pin,uint8 mode); +void u8RPI_pinModes(uint8 pin,char* mode,int size); +void u8RPI_pullControls(uint8 pin,char* mode,int size); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__RPIPERIPHERALSETUP_H__*/ diff --git a/src/c/hardware/rasberrypi/includes/RPIPeripheralShift.h b/src/c/hardware/rasberrypi/includes/RPIPeripheralShift.h new file mode 100644 index 00000000..4c58bb77 --- /dev/null +++ b/src/c/hardware/rasberrypi/includes/RPIPeripheralShift.h @@ -0,0 +1,31 @@ + /* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani, Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in + */ +#ifndef __RPIPERIPHERALSHIFT_H__ +#define __RPIPERIPHERALSHIFT_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "types.h" +#include "wiringShift.h" +#include "sr595.h" + +uint8 u8RPI_shiftIns(uint8 dpin,uint8 cpin,uint8 order); +void u8RPI_shiftOuts(uint8 dpin,uint8 cpin,uint8 order,uint8 val); +int8 u16RPI_sr595Setups(uint16 pinBase,uint8 nPins,uint8 dP,uint8 cP,uint8 lP); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__RPIPERIPHERALSHIFT_H__*/ diff --git a/src/c/hardware/rasberrypi/includes/RPIPeripheralSoft.h b/src/c/hardware/rasberrypi/includes/RPIPeripheralSoft.h new file mode 100644 index 00000000..9494506e --- /dev/null +++ b/src/c/hardware/rasberrypi/includes/RPIPeripheralSoft.h @@ -0,0 +1,37 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani, Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +/* This file declares functions and constants related to Setup*/ + +#ifndef __RPIPERIPHERALSOFT_H__ +#define __RPIPERIPHERALSOFT_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "types.h" +#include "softPwm.h" +#include "softTone.h" + +uint8 u8RPI_softPwmCreates(uint8 pin,uint16 ival,uint16 range); +void u8RPI_softPwmStops(uint8 pin); +void u8RPI_softPwmWrites(uint8 pin,uint16 value); +uint8 u8RPI_softToneCreates(uint8 pin); +void u8RPI_softToneStops(uint8 pin); +void u8RPI_softToneWrites(uint8 pin,uint32 value); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__RPIPERIPHERALSOFT_H__*/ diff --git a/src/c/hardware/rasberrypi/includes/RPIPeripheralTiming.h b/src/c/hardware/rasberrypi/includes/RPIPeripheralTiming.h new file mode 100644 index 00000000..e75a5394 --- /dev/null +++ b/src/c/hardware/rasberrypi/includes/RPIPeripheralTiming.h @@ -0,0 +1,34 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani, Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +/* This file declares functions and constants related to rasberrypi*/ + +#ifndef __RPIPERIPHERALTIMING_H__ +#define __RPIPERIPHERALTIMING_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "types.h" +#include "wiringPi.h" + +void u32RPI_delays(uint32 time); +void u32RPI_delayMicros(uint32 time); +uint32 RPI_millis(); +uint32 RPI_micros(); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__RPIPERIPHERALTIMING_H__*/ diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralDigital.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralDigital.h new file mode 100644 index 00000000..6b7ed271 --- /dev/null +++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralDigital.h @@ -0,0 +1,37 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani, Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#ifndef __INT_RPIPERIPHERALGPIO_H__ +#define __INT_RPIPERIPHERALGPIO_H__ + +#include "types.h" +#include "RPIPeripheralDigital.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define u80RPI_digitalReadu80(pin) u8RPI_digitalReads(pin); +#define d0RPI_digitalReadd0(pin) u8RPI_digitalReads(pin); + +#define RPI_digitalReadByteu80() RPI_digitalReadByte(); +#define u80u80RPI_digitalWrite(pin,state) u8RPI_digitalWrites(pin,state); +#define d0d0RPI_digitalWrite(pin,state) u8RPI_digitalWrites(pin,state); + +#define u80RPI_digitalWriteByte(value) u8RPI_digitalWriteBytes(value); +#define d0RPI_digitalWriteByte(value) u8RPI_digitalWriteBytes(value); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* !__INT_RPIPERIPHERALGPIO_H__ */ diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralGertboard.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralGertboard.h new file mode 100644 index 00000000..e258068c --- /dev/null +++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralGertboard.h @@ -0,0 +1,38 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani, Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#ifndef __INT_RPIPERIPHERALGERTBOARD_H__ +#define __INT_RPIPERIPHERALGERTBOARD_H__ + +#include "types.h" +#include "RPIPeripheralGertboard.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define RPI_gertboardSPISetupi80() RPI_gertboardSPISetup(); + +#define u160RPI_gertboardAnalogSetupi80(pinBase) u16RPI_gertboardAnalogSetups(pinBase); +#define d0RPI_gertboardAnalogSetupi80(pinBase) u16RPI_gertboardAnalogSetups(pinBase); + +#define u160RPI_gertboardAnalogReadu160(pin) u160RPI_gertboardAnalogReads(pin); +#define d0RPI_gertboardAnalogReadu160(pin) u160RPI_gertboardAnalogReads(pin); + +#define u160u160RPI_gertboardAnalogWrite(pin,value) u160RPI_gertboardAnalogWrites(pin,value); +#define d0d0RPI_gertboardAnalogWrite(pin,value) u160RPI_gertboardAnalogWrites(pin,value); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* !__INT_RPIPERIPHERALGERTBOARD_H__ */ diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralI2C.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralI2C.h new file mode 100644 index 00000000..b93529e3 --- /dev/null +++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralI2C.h @@ -0,0 +1,48 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#ifndef __INT_RPIPERIPHERALI2C_H__ +#define __INT_RPIPERIPHERALI2C_H__ + +#include "types.h" +#include "RPIPeripheralI2C.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define u160RPI_I2CSetupi80(arrd) u16RPI_I2CSetups(arrd); +#define d0RPI_I2CSetupi80(arrd) u16RPI_I2CSetups(arrd); + +#define u160RPI_I2CReadi80(fd) u16RPI_I2CReads(fd); +#define d0RPI_I2CReadi80(fd) u16RPI_I2CReads(fd); + +#define u160u160RPI_I2CReadReg8i80(fd,reg) u16RPI_I2CReadReg8s(fd,reg); +#define d0d0RPI_I2CReadReg8i80(fd,reg) u16RPI_I2CReadReg8s(fd,reg); + +#define u160u160RPI_I2CReadReg16i80(fd,reg) u16RPI_I2CReadReg16s(fd,reg); +#define d0d0RPI_I2CReadReg16i80(fd,reg) u16RPI_I2CReadReg16s(fd,reg); + +#define u160u160RPI_I2CWritei80(fd,data) u16RPI_I2CWrites(fd,data); +#define d0d0RPI_I2CWritei80(fd,data) u16RPI_I2CWrites(fd,data); + +#define u160u160u160RPI_I2CWriteReg8i80(fd,reg,data) u16RPI_I2CWriteReg8s(fd,reg,data); +#define d0d0d0RPI_I2CWriteReg8i80(fd,reg,data) u16RPI_I2CWriteReg8s(fd,reg,data); + +#define u160u160u160RPI_I2CWriteReg16i80(fd,reg,data) u16RPI_I2CWriteReg16s(fd,reg,data); +#define d0d0d0RPI_I2CWriteReg16i80(fd,reg,data) u16RPI_I2CWriteReg16s(fd,reg,data); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* !__INT_RPIPERIPHERALI2C_H__ */ diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralInterrupt.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralInterrupt.h new file mode 100644 index 00000000..572d028d --- /dev/null +++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralInterrupt.h @@ -0,0 +1,30 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#ifndef __INT_RPIPERIPHERALINTERRUPT_H__ +#define __INT_RPIPERIPHERALINTERRUPT_H__ + +#include "types.h" +#include "RPIPeripheralInterrupt.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define u80i160RPI_waitForInterrupti80(pin,time) u8RPI_waitForInterrupts(pin,time); +#define d0d0RPI_waitForInterrupti80(pin,time) u8RPI_waitForInterrupts(pin,time); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* !__INT_RPIPERIPHERALINTERRUPT_H__ */ diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralLCD.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralLCD.h new file mode 100644 index 00000000..803f93e3 --- /dev/null +++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralLCD.h @@ -0,0 +1,70 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#ifndef __INT_RPIPERIPHERALLCD_H__ +#define __INT_RPIPERIPHERALLCD_H__ + +#include "types.h" +#include "RPIPeripheralLCD.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define u80u80u80u80u80u80u80u80u80u80RPI_lcdCharDef(fd,index,d0,d1,d2,d3,d4,d5,d6,d7) u8RPI_lcdCharDefs(fd,index,d0,d1,d2,d3,d4,d5,d6,d7); +#define u80d0d0d0d0d0d0d0d0d0RPI_lcdCharDef(fd,index,d0,d1,d2,d3,d4,d5,d6,d7) u8RPI_lcdCharDefs(fd,index,d0,d1,d2,d3,d4,d5,d6,d7); +#define d0d0d0d0d0d0d0d0d0d0RPI_lcdCharDef(fd,index,d0,d1,d2,d3,d4,d5,d6,d7) u8RPI_lcdCharDefs(fd,index,d0,d1,d2,d3,d4,d5,d6,d7); + +#define u80RPI_lcdClear(fd) u8RPI_lcdClears(fd); +#define d0RPI_lcdClear(fd) u8RPI_lcdClears(fd); + +#define u80u80RPI_lcdCursorBlink(fd,state) u8RPI_lcdCursorBlinks(fd,state); +#define u80d0RPI_lcdCursorBlink(fd,state) u8RPI_lcdCursorBlinks(fd,state); +#define d0d0RPI_lcdCursorBlink(fd,state) u8RPI_lcdCursorBlinks(fd,state); + +#define u80u80RPI_lcdCursor(fd,state) u8RPI_lcdCursors(fd,state); +#define u80d0RPI_lcdCursor(fd,state) u8RPI_lcdCursors(fd,state); +#define d0d0RPI_lcdCursor(fd,state) u8RPI_lcdCursors(fd,state); + +#define u80u80RPI_lcdDisplay(fd,state) u8RPI_lcdDisplays(fd,state); +#define u80d0RPI_lcdDisplay(fd,state) u8RPI_lcdDisplays(fd,state); +#define d0d0RPI_lcdDisplay(fd,state) u8RPI_lcdDisplays(fd,state); + +#define u80RPI_lcdHome(fd) u8RPI_lcdHomes(fd); +#define d0RPI_lcdHome(fd) u8RPI_lcdHomes(fd); + +#define u80u80u80u80u80u80u80u80u80u80u80u80u80RPI_lcdIniti80(rows,cols,bits,rs,strb,d0,d1,d2,d3,d4,d5,d6,d7) u8RPI_lcdInits(rows,cols,bits,rs,strb,d0,d1,d2,d3,d4,d5,d6,d7); +#define d0d0d0d0d0d0d0d0d0d0d0d0d0RPI_lcdIniti80(rows,cols,bits,rs,strb,d0,d1,d2,d3,d4,d5,d6,d7) u8RPI_lcdInits(rows,cols,bits,rs,strb,d0,d1,d2,d3,d4,d5,d6,d7); + +#define u80u80u80RPI_lcdPosition(fd,row,col) u8RPI_lcdPositions(fd,row,col); +#define u80d0d0RPI_lcdPosition(fd,row,col) u8RPI_lcdPositions(fd,row,col); +#define d0d0d0RPI_lcdPosition(fd,row,col) u8RPI_lcdPositions(fd,row,col); + +#define u80u80RPI_lcdPutchar(fd,char) u8RPI_lcdPutchars(fd,char); +#define u80d0RPI_lcdPutchar(fd,char) u8RPI_lcdPutchars(fd,char); +#define d0d0RPI_lcdPutchar(fd,char) u8RPI_lcdPutchars(fd,char); + +#define u80u80RPI_lcdSendCommand(fd,cmd) u8RPI_lcdSendCommands(fd,cmd); +#define u80d0RPI_lcdSendCommand(fd,cmd) u8RPI_lcdSendCommands(fd,cmd); +#define d0d0RPI_lcdSendCommand(fd,cmd) u8RPI_lcdSendCommands(fd,cmd); + +#define u80g2RPI_lcdPuts(fd,msg,size) u8RPI_lcdPutss(fd,msg,size[1]);; +#define d0g2RPI_lcdPuts(fd,msg,size) u8RPI_lcdPutss(fd,msg,size[1]);; + +#define u80g2RPI_lcdPrintf(fd,data,size) u8RPI_lcdPrintfs(fd,data,size[1]); +#define d0g2RPI_lcdPrintf(fd,data,size) u8RPI_lcdPrintfs(fd,data,size[1]); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* !__INT_RPIPERIPHERALLCD_H__ */ diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralLCD128x64.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralLCD128x64.h new file mode 100644 index 00000000..8bb4b17e --- /dev/null +++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralLCD128x64.h @@ -0,0 +1,62 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#ifndef __INT_RPIPERIPHERALLCD128x64_H__ +#define __INT_RPIPERIPHERALLCD128x64_H__ + +#include "types.h" +#include "RPIPeripheralLCD128x64.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define RPI_lcd128x64setupi80() RPI_lcd128x64setup(); + +#define u80RPI_lcd128x64clear(colour) u8RPI_lcd128x64clears(colour); +#define d0RPI_lcd128x64clear(colour) u8RPI_lcd128x64clears(colour); + +#define u80RPI_lcd128x64Orientation(orientation) u8RPI_lcd128x64Orientations(orientation); +#define d0RPI_lcd128x64Orientation(orientation) u8RPI_lcd128x64Orientations(orientation); + +#define u80u80RPI_lcd128x64setOrigin(x,y) u8RPI_lcd128x64setOrigins(x,y); +#define d0d0RPI_lcd128x64setOrigin(x,y) u8RPI_lcd128x64setOrigins(x,y); + +#define u80u80u80RPI_lcd128x64point(x,y,colour) u8RPI_lcd128x64points(x,y,colour); +#define d0d0d0RPI_lcd128x64point(x,y,colour) u8RPI_lcd128x64points(x,y,colour); + +#define u80u80u80RPI_lcd128x64lineTo(x,y,colour) u8RPI_lcd128x64lineTos(x,y,colour); +#define d0d0d0RPI_lcd128x64lineTo(x,y,colour) u8RPI_lcd128x64lineTos(x,y,colour); + +#define u80u80u80u80u80RPI_lcd128x64line(x0,y0,x1,y1,colour) u8RPI_lcd128x64lines(x0,y0,x1,y1,colour); +#define d0d0d0d0d0RPI_lcd128x64line(x0,y0,x1,y1,colour) u8RPI_lcd128x64lines(x0,y0,x1,y1,colour); + +#define u80u80u80u80u80RPI_lcd128x64circle(x,y,r,colour,filled) u8RPI_lcd128x64circles(x,y,r,colour,filled); +#define d0d0d0d0d0RPI_lcd128x64circle(x,y,r,colour,filled) u8RPI_lcd128x64circles(x,y,r,colour,filled); + +#define u80u80u80u80u80RPI_lcd128x64putchar(x,y,c,bgCol,fgCol) u8RPI_lcd128x64putchars(x,y,c,bgCol,fgCol); +#define d0d0d0d0u80RPI_lcd128x64putchar(x,y,c,bgCol,fgCol) u8RPI_lcd128x64putchars(x,y,c,bgCol,fgCol); + +#define u80u80g2u80u80RPI_lcd128x64puts(x,y,str,size,bgCol,fgCol) u8RPI_lcd128x64putss(x,y,str,size[1],bgCol,fgCol); +#define d0d0g2d0d0RPI_lcd128x64puts(x,y,str,size,bgCol,fgCol) u8RPI_lcd128x64putss(x,y,str,size[1],bgCol,fgCol); + +#define u80u80u80u80u80u80RPI_lcd128x64rectangle(x1,y1,x2,y2,colour,filled) u8RPI_lcd128x64rectangles(x1,y1,x2,y2,colour,filled); +#define d0d0d0d0d0d0RPI_lcd128x64rectangle(x1,y1,x2,y2,colour,filled) u8RPI_lcd128x64rectangles(x1,y1,x2,y2,colour,filled); + +#define u80u80u80u80u80u80RPI_lcd128x64ellipse(cx,cy,xRadius,yRadius,colour,filled) u8RPI_lcd128x64ellipses(cx,cy,xRadius,yRadius,colour,filled); +#define d0d0d0d0d0d0RPI_lcd128x64ellipse(cx,cy,xRadius,yRadius,colour,filled) u8RPI_lcd128x64ellipses(cx,cy,xRadius,yRadius,colour,filled); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* !__INT_RPIPERIPHERALLCD128x64_H__ */ diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralMcp.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralMcp.h new file mode 100644 index 00000000..7857b3ae --- /dev/null +++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralMcp.h @@ -0,0 +1,42 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#ifndef __INT_RPIPERIPHERALMCP_H__ +#define __INT_RPIPERIPHERALMCP_H__ + +#include "types.h" +#include "RPIPeripheralMcp.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define u160u80RPI_mcp23008Setupu80(pinBase,addr) u16RPI_mcp23008Setups(pinBase,addr); +#define d0d0RPI_mcp23008Setupu80(pinBase,addr) u16RPI_mcp23008Setups(pinBase,addr); + +#define u160u80RPI_mcp23016Setupu80(pinBase,addr) u16RPI_mcp23016Setups(pinBase,addr); +#define d0d0RPI_mcp23016Setupu80(pinBase,addr) u16RPI_mcp23016Setups(pinBase,addr); + +#define u160u80RPI_mcp23017Setupu80(pinBase,addr) u16RPI_mcp23017Setups(pinBase,addr); +#define d0d0RPI_mcp23017Setupu80(pinBase,addr) u16RPI_mcp23017Setups(pinBase,addr); + +#define u160u80u80RPI_mcp23s08Setupu80(pinBase,spiport,devId) u16RPI_mcp23s08Setups(pinBase,spiport,devId); +#define d0d0d0RPI_mcp23s08Setupu80(pinBase,spiport,devId) u16RPI_mcp23s08Setups(pinBase,spiport,devId); + +#define u160u80u80RPI_mcp23s17Setupu80(pinBase,spiport,devId) u16RPI_mcp23s17Setups(pinBase,spiport,devId); +#define d0d0d0RPI_mcp23s17Setupu80(pinBase,spiport,devId) u16RPI_mcp23s17Setups(pinBase,spiport,devId); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* !__INT_RPIPERIPHERALMCP_H__ */ diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralMisc.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralMisc.h new file mode 100644 index 00000000..de065a24 --- /dev/null +++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralMisc.h @@ -0,0 +1,35 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#ifndef __INT_RPIPERIPHERALMISC_H__ +#define __INT_RPIPERIPHERALMISC_H__ + +#include "types.h" +#include "RPIPeripheralMisc.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define RPI_boardRevu80() RPI_boardRev(); + +#define u80u80RPI_padDrive(group,strength) u8RPI_padDrives(group,strength); +#define d0d0RPI_padDrive(group,strength) u8RPI_padDrives(group,strength); + +#define u160RPI_sn3218Setupi80(pinBase) u16RPI_sn3218Setups(pinBase); +#define d0RPI_sn3218Setupi80(pinBase) u16RPI_sn3218Setups(pinBase); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* !__INT_RPIPERIPHERALMISC_H__ */ diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPWM.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPWM.h new file mode 100644 index 00000000..fd1a1b08 --- /dev/null +++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPWM.h @@ -0,0 +1,41 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#ifndef __INT_RPIPERIPHERALPWM_H__ +#define __INT_RPIPERIPHERALPWM_H__ + +#include "types.h" +#include "RPIPeripheralPWM.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define u80u160RPI_pwmWrite(pin,value) u8RPI_pwmWrites(pin,value); +#define d0d0RPI_pwmWrite(pin,value) u8RPI_pwmWrites(pin,value); + +#define u320RPI_pwmRange(value) u32RPI_pwmRanges(value); +#define d0RPI_pwmRange(value) u32RPI_pwmRanges(value); + +#define g2RPI_pwmMode(mode) gRPI_pwmModea(mode); + +#define u160RPI_pwmClock(divisor) u16RPI_pwmClocks(divisor); +#define d0RPI_pwmClock(divisor) u16RPI_pwmClocks(divisor); + +#define u80u160RPI_pwmToneWrite(pin,value) u8RPI_pwmToneWrites(pin,value); +#define d0d0RPI_pwmToneWrite(pin,value) u8RPI_pwmToneWrites(pin,value); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* !__INT_RPIPERIPHERALPWM_H__ */ diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPcf.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPcf.h new file mode 100644 index 00000000..3d0cb273 --- /dev/null +++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPcf.h @@ -0,0 +1,33 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#ifndef __INT_RPIPERIPHERALPCF_H__ +#define __INT_RPIPERIPHERALPCF_H__ + +#include "types.h" +#include "RPIPeripheralPcf.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define u160u80RPI_pcf8574Setupu80(pinBase,addr) u16RPI_pcf8574Setups(pinBase,addr); +#define d0d0RPI_pcf8574Setupu80(pinBase,addr) u16RPI_pcf8574Setups(pinBase,addr); + +#define u160u80RPI_pcf8591Setupu80(pinBase,addr) u16RPI_pcf8591Setups(pinBase,addr); +#define d0d0RPI_pcf8591Setupu80(pinBase,addr) u16RPI_pcf8591Setups(pinBase,addr); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* !__INT_RPIPERIPHERALPCF_H__ */ diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPiGlow.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPiGlow.h new file mode 100644 index 00000000..8e268f6e --- /dev/null +++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPiGlow.h @@ -0,0 +1,39 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#ifndef __INT_RPIPERIPHERALPIGLOW_H__ +#define __INT_RPIPERIPHERALPIGLOW_H__ + +#include "types.h" +#include "RPIPeripheralPiGlow.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define u80RPI_piGlowSetup(clear) u8RPI_piGlowSetups(clear); +#define d0RPI_piGlowSetup(clear) u8RPI_piGlowSetups(clear); + +#define u80u80u80RPI_piGlow1(leg,ring,intensity) u8RPI_piGlow1s(leg,ring,intensity); +#define d0d0d0RPI_piGlow1(leg,ring,intensity) u8RPI_piGlow1s(leg,ring,intensity); + +#define u80u80RPI_piGlowLeg(leg,intensity) u8RPI_piGlowLegs(leg,intensity); +#define d0d0RPI_piGlowLeg(leg,intensity) u8RPI_piGlowLegs(leg,intensity); + +#define u80u80RPI_piGlowRing(ring,intensity) u8RPI_piGlowRings(ring,intensity); +#define d0d0RPI_piGlowRing(ring,intensity) u8RPI_piGlowRings(ring,intensity); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* !__INT_RPIPERIPHERALPIGLOW_H__ */ diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPinMap.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPinMap.h new file mode 100644 index 00000000..8de0dc29 --- /dev/null +++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPinMap.h @@ -0,0 +1,33 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#ifndef __INT_RPIPERIPHERALPINMAP_H__ +#define __INT_RPIPERIPHERALPINMAP_H__ + +#include "types.h" +#include "RPIPeripheralPinMap.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define u80RPI_physToGpioi80(pin) u8RPI_physToGpios(pin); +#define d0RPI_physToGpioi80(pin) u8RPI_physToGpios(pin); + +#define u80RPI_wpiToGpioi80(pin) u8RPI_wpiToGpios(pin); +#define d0RPI_wpiToGpioi80(pin) u8RPI_wpiToGpios(pin); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* !__INT_RPIPERIPHERALPINMAP_H__ */ diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralSerial.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralSerial.h new file mode 100644 index 00000000..b308d838 --- /dev/null +++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralSerial.h @@ -0,0 +1,51 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#ifndef __INT_RPIPERIPHERALSERIAL_H__ +#define __INT_RPIPERIPHERALSERIAL_H__ + +#include "types.h" +#include "RPIPeripheralSerial.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define g2u320RPI_serialOpeni80(device,size,baud) gRPI_serialOpena(device,size[1],baud); +#define g2d0RPI_serialOpeni80(device,size,baud) gRPI_serialOpena(device,size[1],baud); + +#define u80RPI_serialClose(fd) u8RPI_serialCloses(fd); +#define d0RPI_serialClose(fd) u8RPI_serialCloses(fd); + +#define u80RPI_serialDataAvailu80(fd) u8RPI_serialDataAvails(fd); +#define d0RPI_serialDataAvailu80(fd) u8RPI_serialDataAvails(fd); + +#define u80RPI_serialFlush(fd) u8RPI_serialFlushs(fd); +#define d0RPI_serialFlush(fd) u8RPI_serialFlushs(fd); + +#define u80RPI_serialGetcharg2(fd,out) u8RPI_serialGetchars(fd,out); +#define d0RPI_serialGetcharg2(fd,out) u8RPI_serialGetchars(fd,out); + +#define u80g2RPI_serialPrintf(fd,msg,size) u8RPI_serialPrintfs(fd,msg,size[1]); +#define d0g2RPI_serialPrintf(fd,msg,size) u8RPI_serialPrintfs(fd,msg,size[1]); + +#define u80u80RPI_serialPutchar(fd,character) u8RPI_serialPutchars(fd,character); +#define d0d0RPI_serialPutchar(fd,character) u8RPI_serialPutchars(fd,character); + +#define u80g2RPI_serialPutsg2(fd,character,size) u8RPI_serialPutss(fd,character,size[1]); +#define d0g2RPI_serialPutsg2(fd,character,size) u8RPI_serialPutss(fd,character,size[1]); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* !__INT_RPIPERIPHERALSERIAL_H__ */ diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralSetup.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralSetup.h new file mode 100644 index 00000000..6bcb1632 --- /dev/null +++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralSetup.h @@ -0,0 +1,41 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#ifndef __INT_RPIPERIPHERALSETUP_H__ +#define __INT_RPIPERIPHERALSETUP_H__ + +#include "RPIPeripheralSetup.h" + +#ifdef __cplusplus +extern "C" { +#endif + +//pinNumbering +#define g2RPI_pinNumberingi80(seq,size) gRPI_pinNumberinga(seq,size[1]); +//getAlt +#define u80RPI_getAltu80(pin) u8RPI_getAlts(pin); +#define d0RPI_getAltu80(pin) u8RPI_getAlts(pin); +//pinModeAlt +#define u80u80RPI_pinModeAlt(pin,mode) u8RPI_pinModeAlts(pin,mode); +#define d0d0RPI_pinModeAlt(pin,mode) u8RPI_pinModeAlts(pin,mode); +//pinMode +#define u80g2RPI_pinMode(pin,mode,size) u8RPI_pinModes(pin,mode,size[1]); +#define d0g2RPI_pinMode(pin,mode,size) u8RPI_pinModes(pin,mode,size[1]); +//pullControl +#define u80g2RPI_pullControl(pin,mode,size) u8RPI_pullControls(pin,mode,size[1]); +#define d0g2RPI_pullControl(pin,mode,size) u8RPI_pullControls(pin,mode,size[1]); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* !__INT_RPIPERIPHERALSETUP_H__ */ diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralShift.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralShift.h new file mode 100644 index 00000000..7b70ce9a --- /dev/null +++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralShift.h @@ -0,0 +1,36 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#ifndef __INT_RPIPERIPHERALSHIFT_H__ +#define __INT_RPIPERIPHERALSHIFT_H__ + +#include "types.h" +#include "RPIPeripheralShift.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define u80u80u80RPI_shiftInu80(dpin,cpin,order) u8RPI_shiftIns(dpin,cpin,order); +#define d0d0d0RPI_shiftInu80(dpin,cpin,order) u8RPI_shiftIns(dpin,cpin,order); + +#define u80u80u80u80RPI_shiftOut(dpin,cpin,order,val) u8RPI_shiftOuts(dpin,cpin,order,val); +#define d0d0d0d0RPI_shiftOut(dpin,cpin,order,val) u8RPI_shiftOuts(dpin,cpin,order,val); + +#define u160u80u80u80u80RPI_sr595Setupi80(pinBase,nPins,dP,cP,lP) u16RPI_sr595Setups(pinBase,nPins,dP,cP,lP); +#define d0d0d0d0d0RPI_sr595Setupi80(pinBase,nPins,dP,cP,lP) u16RPI_sr595Setups(pinBase,nPins,dP,cP,lP); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* !__INT_RPIPERIPHERALSHIFT_H__ */ diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralSoft.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralSoft.h new file mode 100644 index 00000000..646c5244 --- /dev/null +++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralSoft.h @@ -0,0 +1,45 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#ifndef __INT_RPIPERIPHERALSOFT_H__ +#define __INT_RPIPERIPHERALSOFT_H__ + +#include "types.h" +#include "RPIPeripheralSoft.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define u80u160u160RPI_softPwmCreateu80(pin,ival,range) u8RPI_softPwmCreates(pin,ival,range); +#define d0d0d0RPI_softPwmCreateu80(pin,ival,range) u8RPI_softPwmCreates(pin,ival,range); + +#define u80RPI_softPwmStop(pin) u8RPI_softPwmStops(pin); +#define d0RPI_softPwmStop(pin) u8RPI_softPwmStops(pin); + +#define u80u160RPI_softPwmWrite(pin,value) u8RPI_softPwmWrites(pin,value); +#define d0d0RPI_softPwmWrite(pin,value) u8RPI_softPwmWrites(pin,value); + +#define u80RPI_softToneCreateu80(pin) u8RPI_softToneCreates(pin); +#define d0RPI_softToneCreateu80(pin) u8RPI_softToneCreates(pin); + +#define u80RPI_softToneStop(pin) u8RPI_softToneStops(pin); +#define d0RPI_softToneStop(pin) u8RPI_softToneStops(pin); + +#define u80u320RPI_softToneWrite(pin,value) u8RPI_softToneWrites(pin,value); +#define d0d0RPI_softToneWrite(pin,value) u8RPI_softToneWrites(pin,value); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* !__INT_RPIPERIPHERALSOFT_H__ */ diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralTiming.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralTiming.h new file mode 100644 index 00000000..cbbb47ae --- /dev/null +++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralTiming.h @@ -0,0 +1,36 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#ifndef __INT_RPIPERIPHERALTIMING_H__ +#define __INT_RPIPERIPHERALTIMING_H__ + +#include "types.h" +#include "RPIPeripheralTiming.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define u320RPI_delay(time) u32RPI_delays(time); +#define d0RPI_delay(time) u32RPI_delays(time); + +#define u320RPI_delayMicro(time) u32RPI_delayMicros(time); +#define d0RPI_delayMicro(time) u32RPI_delayMicros(time); + +#define RPI_millisu320() RPI_millis(); +#define RPI_microsu320() RPI_micros(); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* !__INT_RPIPERIPHERALTIMING_H__ */ diff --git a/src/c/hardware/rasberrypi/lcd/u8RPI_lcdCharDefs.c b/src/c/hardware/rasberrypi/lcd/u8RPI_lcdCharDefs.c new file mode 100644 index 00000000..b85d82fd --- /dev/null +++ b/src/c/hardware/rasberrypi/lcd/u8RPI_lcdCharDefs.c @@ -0,0 +1,18 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralLCD.h" + +void u8RPI_lcdCharDefs(uint8 fd,uint8 index,uint8 d0,uint8 d1,uint8 d2,uint8 d3, uint8 d4,uint8 d5,uint8 d6,uint8 d7){ + uint8 data[8]={d0,d1,d2,d3,d4,d5,d6,d7}; + lcdCharDef(fd,index,data); +} diff --git a/src/c/hardware/rasberrypi/lcd/u8RPI_lcdClears.c b/src/c/hardware/rasberrypi/lcd/u8RPI_lcdClears.c new file mode 100644 index 00000000..659cdf07 --- /dev/null +++ b/src/c/hardware/rasberrypi/lcd/u8RPI_lcdClears.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralLCD.h" + +void u8RPI_lcdClears(uint8 fd){ + lcdClear(fd); +} diff --git a/src/c/hardware/rasberrypi/lcd/u8RPI_lcdCursorBlinks.c b/src/c/hardware/rasberrypi/lcd/u8RPI_lcdCursorBlinks.c new file mode 100644 index 00000000..bf0c48e3 --- /dev/null +++ b/src/c/hardware/rasberrypi/lcd/u8RPI_lcdCursorBlinks.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralLCD.h" + +void u8RPI_lcdCursorBlinks(uint8 fd,uint8 state){ + lcdCursorBlink(fd,state); +} diff --git a/src/c/hardware/rasberrypi/lcd/u8RPI_lcdCursors.c b/src/c/hardware/rasberrypi/lcd/u8RPI_lcdCursors.c new file mode 100644 index 00000000..8bb02715 --- /dev/null +++ b/src/c/hardware/rasberrypi/lcd/u8RPI_lcdCursors.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralLCD.h" + +void u8RPI_lcdCursors(uint8 fd,uint8 state){ + lcdCursor(fd,state); +} diff --git a/src/c/hardware/rasberrypi/lcd/u8RPI_lcdDisplays.c b/src/c/hardware/rasberrypi/lcd/u8RPI_lcdDisplays.c new file mode 100644 index 00000000..7425ebe9 --- /dev/null +++ b/src/c/hardware/rasberrypi/lcd/u8RPI_lcdDisplays.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralLCD.h" + +void u8RPI_lcdDisplays(uint8 fd,uint8 state){ + lcdDisplay(fd,state); +} diff --git a/src/c/hardware/rasberrypi/lcd/u8RPI_lcdHomes.c b/src/c/hardware/rasberrypi/lcd/u8RPI_lcdHomes.c new file mode 100644 index 00000000..98762de4 --- /dev/null +++ b/src/c/hardware/rasberrypi/lcd/u8RPI_lcdHomes.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralLCD.h" + +void u8RPI_lcdHomes(uint8 fd){ + lcdHome(fd); +} diff --git a/src/c/hardware/rasberrypi/lcd/u8RPI_lcdInits.c b/src/c/hardware/rasberrypi/lcd/u8RPI_lcdInits.c new file mode 100644 index 00000000..b69f311c --- /dev/null +++ b/src/c/hardware/rasberrypi/lcd/u8RPI_lcdInits.c @@ -0,0 +1,19 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralLCD.h" + +int8 u8RPI_lcdInits(uint8 rows,uint8 cols,uint8 bits,uint8 rs,uint8 strb,uint8 d0,uint8 d1,uint8 d2,uint8 d3,uint8 d4,uint8 d5,uint8 d6,uint8 d7){ + uint8 fd; + fd=lcdInit(rows,cols,bits,rs,strb,d0,d1,d2,d3,d4,d5,d6,d7); + return (fd); +} diff --git a/src/c/hardware/rasberrypi/lcd/u8RPI_lcdPositions.c b/src/c/hardware/rasberrypi/lcd/u8RPI_lcdPositions.c new file mode 100644 index 00000000..3188a972 --- /dev/null +++ b/src/c/hardware/rasberrypi/lcd/u8RPI_lcdPositions.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralLCD.h" + +void u8RPI_lcdPositions(uint8 fd,uint8 row,uint8 col){ + lcdPosition(fd,row,col); +} diff --git a/src/c/hardware/rasberrypi/lcd/u8RPI_lcdPrintfs.c b/src/c/hardware/rasberrypi/lcd/u8RPI_lcdPrintfs.c new file mode 100644 index 00000000..58d01fa8 --- /dev/null +++ b/src/c/hardware/rasberrypi/lcd/u8RPI_lcdPrintfs.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralLCD.h" + +void u8RPI_lcdPrintfs(uint8 fd,char* data,int size){ + lcdPrintf(fd,data); +} diff --git a/src/c/hardware/rasberrypi/lcd/u8RPI_lcdPutchars.c b/src/c/hardware/rasberrypi/lcd/u8RPI_lcdPutchars.c new file mode 100644 index 00000000..c50a177b --- /dev/null +++ b/src/c/hardware/rasberrypi/lcd/u8RPI_lcdPutchars.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralLCD.h" + +void u8RPI_lcdPutchars(uint8 fd,uint8 character){ + lcdPutchar(fd,character); +} diff --git a/src/c/hardware/rasberrypi/lcd/u8RPI_lcdPutss.c b/src/c/hardware/rasberrypi/lcd/u8RPI_lcdPutss.c new file mode 100644 index 00000000..a7f492ba --- /dev/null +++ b/src/c/hardware/rasberrypi/lcd/u8RPI_lcdPutss.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralLCD.h" + +void u8RPI_lcdPutss(uint8 fd,char* msg,int size){ + lcdPuts(fd,msg); +} diff --git a/src/c/hardware/rasberrypi/lcd/u8RPI_lcdSendCommands.c b/src/c/hardware/rasberrypi/lcd/u8RPI_lcdSendCommands.c new file mode 100644 index 00000000..7097d696 --- /dev/null +++ b/src/c/hardware/rasberrypi/lcd/u8RPI_lcdSendCommands.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralLCD.h" + +void u8RPI_lcdSendCommands(uint8 fd,uint8 cmd){ + lcdSendCommand(fd,cmd); +} diff --git a/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64Orientation.c b/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64Orientation.c new file mode 100644 index 00000000..52391029 --- /dev/null +++ b/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64Orientation.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralLCD128x64.h" + +void u8RPI_lcd128x64Orientations(uint8 orientation){ + lcd128x64setOrientation(orientation); +} diff --git a/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64circle.c b/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64circle.c new file mode 100644 index 00000000..9019d8f4 --- /dev/null +++ b/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64circle.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralLCD128x64.h" + +void u8RPI_lcd128x64circles(uint8 x,uint8 y,uint8 r,uint8 colour,uint8 filled){ + lcd128x64circle(x,y,r,colour,filled); +} diff --git a/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64clear.c b/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64clear.c new file mode 100644 index 00000000..a83cef25 --- /dev/null +++ b/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64clear.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralLCD128x64.h" + +void u8RPI_lcd128x64clears(uint8 colour){ + lcd128x64clear(colour); +} diff --git a/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64ellipse.c b/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64ellipse.c new file mode 100644 index 00000000..d2e2f542 --- /dev/null +++ b/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64ellipse.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralLCD128x64.h" + +void u8RPI_lcd128x64ellipses(uint8 cx, uint8 cy, uint8 xRadius, uint8 yRadius, uint8 colour, uint8 filled){ + lcd128x64ellipse(cx,cy,xRadius,yRadius,colour,filled); +} diff --git a/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64line.c b/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64line.c new file mode 100644 index 00000000..f5850808 --- /dev/null +++ b/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64line.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralLCD128x64.h" + +void u8RPI_lcd128x64lines(uint8 x0, uint8 y0, uint8 x1, uint8 y1, uint8 colour){ + lcd128x64line(x0,y0,x1,y1,colour); +} diff --git a/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64lineTo.c b/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64lineTo.c new file mode 100644 index 00000000..3f791f64 --- /dev/null +++ b/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64lineTo.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralLCD128x64.h" + +void u8RPI_lcd128x64lineTos(uint8 x, uint8 y, uint8 colour){ + lcd128x64lineTo(x,y,colour); +} diff --git a/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64point.c b/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64point.c new file mode 100644 index 00000000..a23cdddc --- /dev/null +++ b/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64point.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralLCD128x64.h" + +void u8RPI_lcd128x64points(uint8 x,uint8 y,uint8 colour){ + lcd128x64point(x,y,colour); +} diff --git a/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64putchar.c b/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64putchar.c new file mode 100644 index 00000000..2dadb448 --- /dev/null +++ b/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64putchar.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralLCD128x64.h" + +void u8RPI_lcd128x64putchars(uint8 x, uint8 y, uint8 c, uint8 bgCol, uint8 fgCol){ + lcd128x64putchar(x,y,c,bgCol,fgCol); +} diff --git a/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64puts.c b/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64puts.c new file mode 100644 index 00000000..15c54da3 --- /dev/null +++ b/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64puts.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralLCD128x64.h" + +void u8RPI_lcd128x64putss(uint8 x, uint8 y, char* str,int size, uint8 bgCol, uint8 fgCol){ + lcd128x64puts(x,y,str,bgCol,fgCol); +} diff --git a/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64rectangle.c b/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64rectangle.c new file mode 100644 index 00000000..78239d9f --- /dev/null +++ b/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64rectangle.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralLCD128x64.h" + +void u8RPI_lcd128x64rectangles(uint8 x1,uint8 y1,uint8 x2,uint8 y2,uint8 colour,uint8 filled){ + lcd128x64rectangle(x1,y1,x2,y2,colour,filled); +} diff --git a/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64setOrigin.c b/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64setOrigin.c new file mode 100644 index 00000000..c4b19391 --- /dev/null +++ b/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64setOrigin.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralLCD128x64.h" + +void u8RPI_lcd128x64setOrigins(uint8 x,uint8 y){ + lcd128x64setOrigin(x,y); +} diff --git a/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64setup.c b/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64setup.c new file mode 100644 index 00000000..8f6e6b6f --- /dev/null +++ b/src/c/hardware/rasberrypi/lcd128x64/RPI_lcd128x64setup.c @@ -0,0 +1,19 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralLCD128x64.h" + +int8 RPI_lcd128x64setup(){ + int8 out; + out=lcd128x64setup(); + return (out); +} diff --git a/src/c/hardware/rasberrypi/mcp/u16RPI_mcp23008Setups.c b/src/c/hardware/rasberrypi/mcp/u16RPI_mcp23008Setups.c new file mode 100644 index 00000000..c7d73268 --- /dev/null +++ b/src/c/hardware/rasberrypi/mcp/u16RPI_mcp23008Setups.c @@ -0,0 +1,19 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralMcp.h" + +uint8 u16RPI_mcp23008Setups(uint16 pinBase,uint8 addr){ + uint8 out; + out=mcp23008Setup(pinBase,addr); + return (out); +} diff --git a/src/c/hardware/rasberrypi/mcp/u16RPI_mcp23016Setups.c b/src/c/hardware/rasberrypi/mcp/u16RPI_mcp23016Setups.c new file mode 100644 index 00000000..2e35e5c2 --- /dev/null +++ b/src/c/hardware/rasberrypi/mcp/u16RPI_mcp23016Setups.c @@ -0,0 +1,19 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralMcp.h" + +uint8 u16RPI_mcp23016Setups(uint16 pinBase,uint8 addr){ + uint8 out; + out=mcp23016Setup(pinBase,addr); + return (out); +} diff --git a/src/c/hardware/rasberrypi/mcp/u16RPI_mcp23017Setups.c b/src/c/hardware/rasberrypi/mcp/u16RPI_mcp23017Setups.c new file mode 100644 index 00000000..35ed5477 --- /dev/null +++ b/src/c/hardware/rasberrypi/mcp/u16RPI_mcp23017Setups.c @@ -0,0 +1,19 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralMcp.h" + +uint8 u16RPI_mcp23017Setups(uint16 pinBase,uint8 addr){ + uint8 out; + out=mcp23017Setup(pinBase,addr); + return (out); +} diff --git a/src/c/hardware/rasberrypi/mcp/u16RPI_mcp23s08Setups.c b/src/c/hardware/rasberrypi/mcp/u16RPI_mcp23s08Setups.c new file mode 100644 index 00000000..e1bdab60 --- /dev/null +++ b/src/c/hardware/rasberrypi/mcp/u16RPI_mcp23s08Setups.c @@ -0,0 +1,19 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralMcp.h" + +uint8 u16RPI_mcp23s08Setups(uint16 pinBase,uint8 spiport,uint8 devId){ + uint8 out; + out=mcp23s08Setup(pinBase,spiport,devId); + return (out); +} diff --git a/src/c/hardware/rasberrypi/mcp/u16RPI_mcp23s17Setups.c b/src/c/hardware/rasberrypi/mcp/u16RPI_mcp23s17Setups.c new file mode 100644 index 00000000..5ba30d23 --- /dev/null +++ b/src/c/hardware/rasberrypi/mcp/u16RPI_mcp23s17Setups.c @@ -0,0 +1,19 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralMcp.h" + +uint8 u16RPI_mcp23s17Setups(uint16 pinBase,uint8 spiport,uint8 devId){ + uint8 out; + out=mcp23s17Setup(pinBase,spiport,devId); + return (out); +} diff --git a/src/c/hardware/rasberrypi/pcf/u16RPI_pcf8574Setups.c b/src/c/hardware/rasberrypi/pcf/u16RPI_pcf8574Setups.c new file mode 100644 index 00000000..f7e38df0 --- /dev/null +++ b/src/c/hardware/rasberrypi/pcf/u16RPI_pcf8574Setups.c @@ -0,0 +1,19 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralPcf.h" + +uint8 u16RPI_pcf8574Setups(uint16 pinBase,uint8 addr){ + uint8 out; + out=pcf8574Setup(pinBase,addr); + return (out); +} diff --git a/src/c/hardware/rasberrypi/pcf/u16RPI_pcf8591Setups.c b/src/c/hardware/rasberrypi/pcf/u16RPI_pcf8591Setups.c new file mode 100644 index 00000000..de26a926 --- /dev/null +++ b/src/c/hardware/rasberrypi/pcf/u16RPI_pcf8591Setups.c @@ -0,0 +1,19 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralPcf.h" + +uint8 u16RPI_pcf8591Setups(uint16 pinBase,uint8 addr){ + uint8 out; + out=pcf8591Setup(pinBase,addr); + return (out); +} diff --git a/src/c/hardware/rasberrypi/piGlow/u8RPI_piGlow1s.c b/src/c/hardware/rasberrypi/piGlow/u8RPI_piGlow1s.c new file mode 100644 index 00000000..792cda1c --- /dev/null +++ b/src/c/hardware/rasberrypi/piGlow/u8RPI_piGlow1s.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralPiGlow.h" + +void u8RPI_piGlow1s(uint8 leg,uint8 ring,uint8 intensity){ + piGlow1(leg,ring,intensity); +} diff --git a/src/c/hardware/rasberrypi/piGlow/u8RPI_piGlowLegs.c b/src/c/hardware/rasberrypi/piGlow/u8RPI_piGlowLegs.c new file mode 100644 index 00000000..f4ef5b50 --- /dev/null +++ b/src/c/hardware/rasberrypi/piGlow/u8RPI_piGlowLegs.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralPiGlow.h" + +void u8RPI_piGlowLegs(uint8 leg,uint8 intensity){ + piGlowLeg(leg,intensity); +} diff --git a/src/c/hardware/rasberrypi/piGlow/u8RPI_piGlowRings.c b/src/c/hardware/rasberrypi/piGlow/u8RPI_piGlowRings.c new file mode 100644 index 00000000..985696df --- /dev/null +++ b/src/c/hardware/rasberrypi/piGlow/u8RPI_piGlowRings.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralPiGlow.h" + +void u8RPI_piGlowRings(uint8 ring,uint8 intensity){ + piGlowRing(ring,intensity); +} diff --git a/src/c/hardware/rasberrypi/piGlow/u8RPI_piGlowSetups.c b/src/c/hardware/rasberrypi/piGlow/u8RPI_piGlowSetups.c new file mode 100644 index 00000000..2037a9b5 --- /dev/null +++ b/src/c/hardware/rasberrypi/piGlow/u8RPI_piGlowSetups.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralPiGlow.h" + +void u8RPI_piGlowSetups(uint8 clear){ + piGlowSetup(clear); +} diff --git a/src/c/hardware/rasberrypi/pinMap/u8RPI_physToGpios.c b/src/c/hardware/rasberrypi/pinMap/u8RPI_physToGpios.c new file mode 100644 index 00000000..09a57132 --- /dev/null +++ b/src/c/hardware/rasberrypi/pinMap/u8RPI_physToGpios.c @@ -0,0 +1,19 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralPinMap.h" + +int8 u8RPI_physToGpios(uint8 pin){ + int8 out; + out=physPinToGpio(pin); + return (pin); +} diff --git a/src/c/hardware/rasberrypi/pinMap/u8RPI_wpiToGpios.c b/src/c/hardware/rasberrypi/pinMap/u8RPI_wpiToGpios.c new file mode 100644 index 00000000..5f65f34c --- /dev/null +++ b/src/c/hardware/rasberrypi/pinMap/u8RPI_wpiToGpios.c @@ -0,0 +1,19 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralPinMap.h" + +int8 u8RPI_wpiToGpios(uint8 pin){ + int8 out; + out=wpiPinToGpio(pin); + return (out); +} diff --git a/src/c/hardware/rasberrypi/pwm/gRPI_pwmModea.c b/src/c/hardware/rasberrypi/pwm/gRPI_pwmModea.c new file mode 100644 index 00000000..da67a15c --- /dev/null +++ b/src/c/hardware/rasberrypi/pwm/gRPI_pwmModea.c @@ -0,0 +1,25 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani, Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralPWM.h" + +/*Function to set mode for PWM channel. Two modes are available + "bal" --> balanced mode + "ms" --> mark/space mode + */ + +void gRPI_pwmModea(char* mode,int size){ + if (mode[0] == 'm') /*mark/space mode*/ + pwmSetMode(0); + else if (mode[0] == 'b') + pwmSetMode(1); +} diff --git a/src/c/hardware/rasberrypi/pwm/u16RPI_pwmClocks.c b/src/c/hardware/rasberrypi/pwm/u16RPI_pwmClocks.c new file mode 100644 index 00000000..85e1fb2b --- /dev/null +++ b/src/c/hardware/rasberrypi/pwm/u16RPI_pwmClocks.c @@ -0,0 +1,23 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani, Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralPWM.h" + +/*Function to set clock for pwm channel. Default clock is 19.2 MHz. 'clk_divisor' + along with range decides frequency for PWM + PWM frequency = 19.2 MHz / clk_divisor/ range + Range for clk_divisor = 1-2048 +*/ + +void u16RPI_pwmClocks(uint16 divisor){ + pwmSetClock(divisor); +} diff --git a/src/c/hardware/rasberrypi/pwm/u32RPI_pwmRanges.c b/src/c/hardware/rasberrypi/pwm/u32RPI_pwmRanges.c new file mode 100644 index 00000000..1fb22963 --- /dev/null +++ b/src/c/hardware/rasberrypi/pwm/u32RPI_pwmRanges.c @@ -0,0 +1,22 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani, Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralPWM.h" + +/*Function to assign pwm duty to specified pin. PWM duty is decided by 'value' + and 'range' specified using corresponding function. + PWM duty = value/range + */ + +void u32RPI_pwmRanges(uint32 value){ + pwmSetRange(value); +} diff --git a/src/c/hardware/rasberrypi/pwm/u8RPI_pwmToneWrites.c b/src/c/hardware/rasberrypi/pwm/u8RPI_pwmToneWrites.c new file mode 100644 index 00000000..3fe0c828 --- /dev/null +++ b/src/c/hardware/rasberrypi/pwm/u8RPI_pwmToneWrites.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani, Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralPWM.h" + +void u8RPI_pwmToneWrites(uint8 pin,uint16 freq){ + pwmToneWrite(pin,freq); +} diff --git a/src/c/hardware/rasberrypi/pwm/u8RPI_pwmWrites.c b/src/c/hardware/rasberrypi/pwm/u8RPI_pwmWrites.c new file mode 100644 index 00000000..be94e73e --- /dev/null +++ b/src/c/hardware/rasberrypi/pwm/u8RPI_pwmWrites.c @@ -0,0 +1,19 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani, Jorawar Singh + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralPWM.h" + +/*Function to write the given value to the pwm pin*/ + +void u8RPI_pwmWrites(uint8 pin, uint16 value){ + pwmWrite(pin, value); +} diff --git a/src/c/hardware/rasberrypi/soft/u8RPI_softPwmCreates.c b/src/c/hardware/rasberrypi/soft/u8RPI_softPwmCreates.c new file mode 100644 index 00000000..d6977798 --- /dev/null +++ b/src/c/hardware/rasberrypi/soft/u8RPI_softPwmCreates.c @@ -0,0 +1,19 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralSoft.h" + +uint8 u8RPI_softPwmCreates(uint8 pin,uint16 ival,uint16 range){ + uint8 out; + out=softPwmCreate(pin,ival,range); + return (out); +} diff --git a/src/c/hardware/rasberrypi/soft/u8RPI_softPwmStops.c b/src/c/hardware/rasberrypi/soft/u8RPI_softPwmStops.c new file mode 100644 index 00000000..761fdc23 --- /dev/null +++ b/src/c/hardware/rasberrypi/soft/u8RPI_softPwmStops.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralSoft.h" + +void u8RPI_softPwmStops(uint8 pin){ + softPwmStop(pin); +} diff --git a/src/c/hardware/rasberrypi/soft/u8RPI_softPwmWrites.c b/src/c/hardware/rasberrypi/soft/u8RPI_softPwmWrites.c new file mode 100644 index 00000000..2b76d148 --- /dev/null +++ b/src/c/hardware/rasberrypi/soft/u8RPI_softPwmWrites.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralSoft.h" + +void u8RPI_softPwmWrites(uint8 pin,uint16 value){ + softPwmWrite(pin,value); +} diff --git a/src/c/hardware/rasberrypi/soft/u8RPI_softToneCreates.c b/src/c/hardware/rasberrypi/soft/u8RPI_softToneCreates.c new file mode 100644 index 00000000..dfcbb1fb --- /dev/null +++ b/src/c/hardware/rasberrypi/soft/u8RPI_softToneCreates.c @@ -0,0 +1,19 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralSoft.h" + +uint8 u8RPI_softToneCreates(uint8 pin){ + uint8 out; + out=softToneCreate(pin); + return (out); +} diff --git a/src/c/hardware/rasberrypi/soft/u8RPI_softToneStops.c b/src/c/hardware/rasberrypi/soft/u8RPI_softToneStops.c new file mode 100644 index 00000000..664fbda4 --- /dev/null +++ b/src/c/hardware/rasberrypi/soft/u8RPI_softToneStops.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralSoft.h" + +void u8RPI_softToneStops(uint8 pin){ + softToneStop(pin); +} diff --git a/src/c/hardware/rasberrypi/soft/u8RPI_softToneWrites.c b/src/c/hardware/rasberrypi/soft/u8RPI_softToneWrites.c new file mode 100644 index 00000000..be04b476 --- /dev/null +++ b/src/c/hardware/rasberrypi/soft/u8RPI_softToneWrites.c @@ -0,0 +1,17 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Jorawar Singh, Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "RPIPeripheralSoft.h" + +void u8RPI_softToneWrites(uint8 pin,uint32 value){ + softToneWrite(pin,value); +} |