Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Valued Contributor III
839 Views

SPI ADC interface Nios 2, programing in C

hey guys,

i am working on a project where i am supposed to pick up data from a "line sensor" QRE1113 from sparkfun and use MCP3002 ADC to convert the anolog signal to a binary value. i am using the DE1 board and i have built in the SPI (3 wire serial) core into my Qsys. i am trying to read and write data using:

Code:

IOWR(SPI_BASE, register, Value);

f

or example to write to the adc input [

CODE]IOWR(SPI_BASE,1,0xf0);[/CODE]. 

 

this is my code as it stands 

Code:

#include "io.h"

#include "alt_types.h"

#include "system.h"

#include "altera_up_avalon_character_lcd.h"

#include "altera_up_avalon_character_lcd_regs.h"

#include "altera_avalon_spi_regs.h"

#include "altera_avalon_spi.h"

#include <stdio.h>

int main(){

while (1){

int rddata;

char buff [50];

int value ;

unsigned long i; //stay shutdown

for(i=0; i<1000000; i++){} //for counter interval

IOWR(SPI_BASE,5, 0x0001); //restart ADC

IOWR(SPI_BASE,1,0xf000); // initialize ADC,

unsigned long j;

for(j=0; j<100000; j++){} //buffer for spi RXDATA register to fill

rddata = IORD(SPI_BASE,0);//read data from RXdata

IOWR(SPI_BASE,5, 0x0000); //shutdown ADC

printf("%d", rddata);//print to nios consol

value=sprintf (buff, "%d", (rddata*100)/511 );

alt_up_character_lcd_dev * char_lcd_dev;

char_lcd_dev = alt_up_character_lcd_open_dev ("/dev/LCD");

alt_up_character_lcd_init(char_lcd_dev);

alt_up_character_lcd_string(char_lcd_dev,"reflection= ");//print "reflection= "

alt_up_character_lcd_set_cursor_pos(char_lcd_dev,13,0);//move cursor

alt_up_character_lcd_string(char_lcd_dev, buff);//print data to LCD

alt_up_character_lcd_set_cursor_pos(char_lcd_dev,15,0);//move cursor

alt_up_character_lcd_string(char_lcd_dev,"%");//print "%"

}

 

}

i am using the DE1 board and asigned mosi, miso, sclk, and ss, to pins on the GPIO

 

i would apreciate all the help

0 Kudos
0 Replies