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: SDFileSystem mbed
main.cpp@0:284d0767f08c, 2015-05-01 (annotated)
- Committer:
- stefan1691
- Date:
- Fri May 01 12:39:13 2015 +0000
- Revision:
- 0:284d0767f08c
Beispiel SD Card I/O
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| stefan1691 | 0:284d0767f08c | 1 | /** Beispiel SD Card I/O |
| stefan1691 | 0:284d0767f08c | 2 | */ |
| stefan1691 | 0:284d0767f08c | 3 | #include "mbed.h" |
| stefan1691 | 0:284d0767f08c | 4 | #include "SDFileSystem.h" |
| stefan1691 | 0:284d0767f08c | 5 | |
| stefan1691 | 0:284d0767f08c | 6 | // Standard SD Card Slot auf FRDM-K64F Board |
| stefan1691 | 0:284d0767f08c | 7 | SDFileSystem sd(PTE3, PTE1, PTE2, PTE4, "sd"); // MOSI, MISO, SCK, CS |
| stefan1691 | 0:284d0767f08c | 8 | |
| stefan1691 | 0:284d0767f08c | 9 | // File I/O |
| stefan1691 | 0:284d0767f08c | 10 | FILE *fp; |
| stefan1691 | 0:284d0767f08c | 11 | |
| stefan1691 | 0:284d0767f08c | 12 | // Sensor |
| stefan1691 | 0:284d0767f08c | 13 | AnalogIn poti( A0 ); |
| stefan1691 | 0:284d0767f08c | 14 | char filename[] = "/sd/poti.txt"; |
| stefan1691 | 0:284d0767f08c | 15 | |
| stefan1691 | 0:284d0767f08c | 16 | /** |
| stefan1691 | 0:284d0767f08c | 17 | * Sensordaten schreiben, bzw. in Datei anfuegen |
| stefan1691 | 0:284d0767f08c | 18 | * @param name Name Sensor |
| stefan1691 | 0:284d0767f08c | 19 | * @param value Sensorwert |
| stefan1691 | 0:284d0767f08c | 20 | * @return -1 bei Fehler |
| stefan1691 | 0:284d0767f08c | 21 | */ |
| stefan1691 | 0:284d0767f08c | 22 | int writeSensorData( char name[], float value ) |
| stefan1691 | 0:284d0767f08c | 23 | { |
| stefan1691 | 0:284d0767f08c | 24 | // Datei oeffen und anfuegen, Alternative "w" fuer neu schreiben. |
| stefan1691 | 0:284d0767f08c | 25 | fp = fopen( name, "a" ); |
| stefan1691 | 0:284d0767f08c | 26 | |
| stefan1691 | 0:284d0767f08c | 27 | // Fehler? |
| stefan1691 | 0:284d0767f08c | 28 | if (fp == NULL) |
| stefan1691 | 0:284d0767f08c | 29 | return ( -1 ); |
| stefan1691 | 0:284d0767f08c | 30 | |
| stefan1691 | 0:284d0767f08c | 31 | fprintf( fp, "%f\n", value ); |
| stefan1691 | 0:284d0767f08c | 32 | printf( "write %s: %f\n", name, value ); |
| stefan1691 | 0:284d0767f08c | 33 | fclose ( fp ); |
| stefan1691 | 0:284d0767f08c | 34 | return ( 0 ); |
| stefan1691 | 0:284d0767f08c | 35 | } |
| stefan1691 | 0:284d0767f08c | 36 | |
| stefan1691 | 0:284d0767f08c | 37 | /** |
| stefan1691 | 0:284d0767f08c | 38 | * Sensordaten lesen |
| stefan1691 | 0:284d0767f08c | 39 | * @param name Name Sensor |
| stefan1691 | 0:284d0767f08c | 40 | * @return -1 bei Fehler |
| stefan1691 | 0:284d0767f08c | 41 | */ |
| stefan1691 | 0:284d0767f08c | 42 | int readSensorData( char name[] ) |
| stefan1691 | 0:284d0767f08c | 43 | { |
| stefan1691 | 0:284d0767f08c | 44 | fp = fopen( name, "r"); |
| stefan1691 | 0:284d0767f08c | 45 | |
| stefan1691 | 0:284d0767f08c | 46 | // Fehler? |
| stefan1691 | 0:284d0767f08c | 47 | if (fp == NULL) |
| stefan1691 | 0:284d0767f08c | 48 | return ( -1 ); |
| stefan1691 | 0:284d0767f08c | 49 | |
| stefan1691 | 0:284d0767f08c | 50 | float value; |
| stefan1691 | 0:284d0767f08c | 51 | while ( fscanf( fp, "%f", &value ) > 0 ) |
| stefan1691 | 0:284d0767f08c | 52 | printf( "read - %s: %f\n", name, value ); |
| stefan1691 | 0:284d0767f08c | 53 | |
| stefan1691 | 0:284d0767f08c | 54 | fclose ( fp ); |
| stefan1691 | 0:284d0767f08c | 55 | return ( 0 ); |
| stefan1691 | 0:284d0767f08c | 56 | } |
| stefan1691 | 0:284d0767f08c | 57 | |
| stefan1691 | 0:284d0767f08c | 58 | /** Hauptprogramm */ |
| stefan1691 | 0:284d0767f08c | 59 | int main() |
| stefan1691 | 0:284d0767f08c | 60 | { |
| stefan1691 | 0:284d0767f08c | 61 | printf("SD Card I/O \n"); |
| stefan1691 | 0:284d0767f08c | 62 | while ( 1 ) |
| stefan1691 | 0:284d0767f08c | 63 | { |
| stefan1691 | 0:284d0767f08c | 64 | // 10 x Sensordaten schreiben |
| stefan1691 | 0:284d0767f08c | 65 | for ( int i = 0; i < 10; i++ ) |
| stefan1691 | 0:284d0767f08c | 66 | { |
| stefan1691 | 0:284d0767f08c | 67 | writeSensorData( filename, poti.read() ); |
| stefan1691 | 0:284d0767f08c | 68 | wait ( 1.0f ); |
| stefan1691 | 0:284d0767f08c | 69 | } |
| stefan1691 | 0:284d0767f08c | 70 | |
| stefan1691 | 0:284d0767f08c | 71 | // Sensordaten lesen |
| stefan1691 | 0:284d0767f08c | 72 | readSensorData( filename ); |
| stefan1691 | 0:284d0767f08c | 73 | wait ( 1.0f ); |
| stefan1691 | 0:284d0767f08c | 74 | remove( filename ); |
| stefan1691 | 0:284d0767f08c | 75 | } |
| stefan1691 | 0:284d0767f08c | 76 | } |