Lab 6 code.

Dependencies:   mbed

Fork of WaG by GroupA

Committer:
spm71
Date:
Fri Mar 02 22:18:47 2018 +0000
Revision:
18:0e281922212c
Parent:
17:75d567b60214
Child:
20:d23bcd97f2c5
More implementation on SPI and started stepper files.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
spm71 17:75d567b60214 1 /******************************************************************************
spm71 17:75d567b60214 2 * EECS 397
spm71 17:75d567b60214 3 *
spm71 17:75d567b60214 4 * Assignment Name: Lab 5: WaG
spm71 17:75d567b60214 5 *
spm71 17:75d567b60214 6 * Authors: Sam Morrison and Phong Nguyen
spm71 17:75d567b60214 7 * File name: spi.cpp
spm71 17:75d567b60214 8 * Purpose: Driver for SPI functions
spm71 17:75d567b60214 9 *
spm71 17:75d567b60214 10 * Created: 03/01/2018
spm71 18:0e281922212c 11 * Last Modified: 03/02/2018
spm71 17:75d567b60214 12 *
spm71 17:75d567b60214 13 ******************************************************************************/
spm71 17:75d567b60214 14
spm71 17:75d567b60214 15 #include "mbed.h"
spm71 17:75d567b60214 16 #include "io_pins.h"
spm71 17:75d567b60214 17 #include "spi.h"
spm71 17:75d567b60214 18 #include <stdlib.h>
spm71 17:75d567b60214 19 #include <stdio.h>
spm71 17:75d567b60214 20 #include <string.h>
spm71 17:75d567b60214 21
spm71 18:0e281922212c 22 extern SPI wag_spi;
spm71 18:0e281922212c 23
spm71 18:0e281922212c 24 DigitalOut dsp_ncs(DSP_AS1107_NCS);//This sets up the chip select for the AS1107
spm71 18:0e281922212c 25
spm71 18:0e281922212c 26
spm71 17:75d567b60214 27 extern spi_cfg as1107 {
spm71 18:0e281922212c 28 SPI_AS1107_ID,
spm71 17:75d567b60214 29 DSP_AS1107_NCS,
spm71 17:75d567b60214 30 0,
spm71 17:75d567b60214 31 1000000,
spm71 17:75d567b60214 32 16,
spm71 17:75d567b60214 33 };
spm71 17:75d567b60214 34
spm71 18:0e281922212c 35 /*
spm71 18:0e281922212c 36 * void spi_send(struct spi_cfg spi_config, int spi_data);
spm71 18:0e281922212c 37 * Description: sends an instruction to an SPI device
spm71 18:0e281922212c 38 *
spm71 18:0e281922212c 39 * Inputs:
spm71 18:0e281922212c 40 * Parameters:
spm71 18:0e281922212c 41 * struct spi_cfg spi_config: structure containing device qualities
spm71 18:0e281922212c 42 int spi_data: command to write to device
spm71 18:0e281922212c 43 * Globals:
spm71 18:0e281922212c 44 *
spm71 18:0e281922212c 45 * Outputs:
spm71 18:0e281922212c 46 * Returns: void
spm71 18:0e281922212c 47 */
spm71 17:75d567b60214 48 void spi_send(struct spi_cfg spi_config, int spi_data) {
spm71 17:75d567b60214 49 static int previous_id = SPI_NO_ID;
spm71 17:75d567b60214 50 spi_config.spi_ncs = 1;
spm71 17:75d567b60214 51 if (previous_id != spi_config.spi_id) {
spm71 18:0e281922212c 52 //send config data to master
spm71 17:75d567b60214 53 previous_id = spi_config.spi_id;
spm71 17:75d567b60214 54 }
spm71 17:75d567b60214 55 spi_config.spi_ncs = 0;
spm71 17:75d567b60214 56 wag_spi.write(spi_data);
spm71 17:75d567b60214 57 spi_config.spi_ncs = 1;
spm71 17:75d567b60214 58 }
spm71 17:75d567b60214 59