Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Fork of WaG by
spi.cpp@17:75d567b60214, 2018-03-01 (annotated)
- Committer:
- spm71
- Date:
- Thu Mar 01 17:31:04 2018 +0000
- Revision:
- 17:75d567b60214
- Child:
- 18:0e281922212c
Initial SPI code
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 | 17:75d567b60214 | 11 | * Last Modified: 03/01/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 | 17:75d567b60214 | 22 | extern spi_cfg as1107 { |
spm71 | 17:75d567b60214 | 23 | 1, |
spm71 | 17:75d567b60214 | 24 | DSP_AS1107_NCS, |
spm71 | 17:75d567b60214 | 25 | 0, |
spm71 | 17:75d567b60214 | 26 | 1000000, |
spm71 | 17:75d567b60214 | 27 | 16, |
spm71 | 17:75d567b60214 | 28 | }; |
spm71 | 17:75d567b60214 | 29 | |
spm71 | 17:75d567b60214 | 30 | extern spi_cfg drv8806 { |
spm71 | 17:75d567b60214 | 31 | 2, |
spm71 | 17:75d567b60214 | 32 | STP_DRV8806_NCS, |
spm71 | 17:75d567b60214 | 33 | 0, |
spm71 | 17:75d567b60214 | 34 | 1000000, |
spm71 | 17:75d567b60214 | 35 | 8, |
spm71 | 17:75d567b60214 | 36 | }; |
spm71 | 17:75d567b60214 | 37 | |
spm71 | 17:75d567b60214 | 38 | void spi_send(struct spi_cfg spi_config, int spi_data) { |
spm71 | 17:75d567b60214 | 39 | static int previous_id = SPI_NO_ID; |
spm71 | 17:75d567b60214 | 40 | spi_config.spi_ncs = 1; |
spm71 | 17:75d567b60214 | 41 | if (previous_id != spi_config.spi_id) { |
spm71 | 17:75d567b60214 | 42 | //send config data to master, update previous id with current id |
spm71 | 17:75d567b60214 | 43 | previous_id = spi_config.spi_id; |
spm71 | 17:75d567b60214 | 44 | } |
spm71 | 17:75d567b60214 | 45 | spi_config.spi_ncs = 0; |
spm71 | 17:75d567b60214 | 46 | wag_spi.write(spi_data); |
spm71 | 17:75d567b60214 | 47 | spi_config.spi_ncs = 1; |
spm71 | 17:75d567b60214 | 48 | } |
spm71 | 17:75d567b60214 | 49 |