From 1af41c4c074f83bc777be4b6dd85e8408d03e5e5 Mon Sep 17 00:00:00 2001 From: Nélio Laranjeiro Date: Tue, 12 Feb 2008 00:25:23 +0100 Subject: Removed the test_host. Update the interruption function. Debugged the driver source file. Init tested. --- digital/avr/modules/spi/test/Makefile | 4 +- digital/avr/modules/spi/test/spi_host.c | 107 -------------------------------- digital/avr/modules/spi/test/test_spi.c | 31 +++++++-- 3 files changed, 28 insertions(+), 114 deletions(-) delete mode 100644 digital/avr/modules/spi/test/spi_host.c (limited to 'digital/avr/modules/spi/test') diff --git a/digital/avr/modules/spi/test/Makefile b/digital/avr/modules/spi/test/Makefile index ba09e125..6992c660 100755 --- a/digital/avr/modules/spi/test/Makefile +++ b/digital/avr/modules/spi/test/Makefile @@ -1,7 +1,7 @@ BASE = ../../.. PROGS = test_spi -test_spi_SOURCES = test_spi.c spi_host.c -MODULES = proto uart utils +test_spi_SOURCES = test_spi.c +MODULES = utils spi CONFIGFILE = avrconfig.h # atmega8, atmega8535, atmega128... AVR_MCU = atmega8 diff --git a/digital/avr/modules/spi/test/spi_host.c b/digital/avr/modules/spi/test/spi_host.c deleted file mode 100644 index 9badb9bd..00000000 --- a/digital/avr/modules/spi/test/spi_host.c +++ /dev/null @@ -1,107 +0,0 @@ -/* spi_host.c */ -/* avr.spi - SPI AVR module. {{{ - * - * Copyright (C) 2008 Nélio Laranjeiro - * - * APBTeam: - * Web: http://apbteam.org/ - * Email: team AT apbteam DOT org - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * }}} */ -#include -#include "io.h" -#include "common.h" -#include "modules/proto/proto.h" -#include "modules/spi/spi.h" - -/** Spi driver context. */ -static spi_t spi_global; - -#ifdef HOST -static volatile uint8_t SPCR; -static volatile uint8_t SPDR; -static volatile uint8_t SPSR; -#endif - -/** Initialise the SPI Control Register. - * \param sprc the sprc register data to be store in the register. - * \param cb the function call back to call the user which receive the data. - * \param user_data the user data to be provieded in the function call back. - */ -void -spi_init(uint8_t sprc, spi_recv_cb_t cb, void *user_data) -{ - SPCR = sprc; - spi_global.recv_cb = cb; - spi_global.recv_user_data = user_data; -} - -/** Uninitialise the SPI module. - * Unused on the target - */ -void -spi_uninit (void) -{ -} - -/** Send a data to the Slave. - * \param data the data to send - * \param length the length of the data in bytes. - */ -void -spi_send(uint8_t *data, u8 length) -{ - uint8_t i; - - for ( i = 0; i < length; i++) - { - proto_send0 (data[i]); - } -} - -/** Receive a data from the SPI bus. - * \return the data received from the bus. - */ -uint8_t -spi_recv(void) -{ - return SPDR; -} - -/** Return the status register from the SPI driver. - * \return the status register value - */ -uint8_t -spi_status(void) -{ - return SPSR; -} - -/** Function called by the interruption if an IT is requested. - * - */ -void -spi_catch_it(void) -{ - // call the call back. - (*spi_global.recv_cb) (spi_global.recv_user_data); -} - -void -proto_callback (uint8_t cmd, uint8_t size, uint8_t *args) -{ -} diff --git a/digital/avr/modules/spi/test/test_spi.c b/digital/avr/modules/spi/test/test_spi.c index 08e34db7..a6060b8b 100644 --- a/digital/avr/modules/spi/test/test_spi.c +++ b/digital/avr/modules/spi/test/test_spi.c @@ -27,13 +27,9 @@ #include "io.h" #include "../spi.h" -#ifdef HOST -extern volatile uint8_t SPDR; -#endif - /** Call back function to be called on the AVR interruption */ void -spi_interruption_function (void *user_data) +spi_interruption_function (void *user_data, uint8_t data) { } @@ -43,6 +39,31 @@ main (void) uint8_t test [10]; uint8_t res; + res = SPI_IT_ENABLE; + spi_init (res, spi_interruption_function, 0x0); + res = SPI_IT_DISABLE; + spi_init (res, spi_interruption_function, 0x0); + res = SPI_ENABLE; + spi_init (res, spi_interruption_function, 0x0); + res = SPI_DISABLE; + spi_init (res, spi_interruption_function, 0x0); + res = SPI_LSB_FIRST; + spi_init (res, spi_interruption_function, 0x0); + res = SPI_MSB_FIRST; + spi_init (res, spi_interruption_function, 0x0); + res = SPI_MASTER; + spi_init (res, spi_interruption_function, 0x0); + res = SPI_SLAVE; + spi_init (res, spi_interruption_function, 0x0); + res = SPI_CPOL_RISING; + spi_init (res, spi_interruption_function, 0x0); + res = SPI_CPOL_FALLING; + spi_init (res, spi_interruption_function, 0x0); + res = SPI_CPHA_SAMPLE; + spi_init (res, spi_interruption_function, 0x0); + res = SPI_CPHA_SETUP; + spi_init (res, spi_interruption_function, 0x0); + //initialise the spi. spi_init (0x14, spi_interruption_function, 0x0); -- cgit v1.2.3