Lab 6 code.
Dependencies: mbed
Fork of WaG by
spi.cpp@18:0e281922212c, 2018-03-02 (annotated)
- 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?
User | Revision | Line number | New 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 |