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_conMOD mbed-rtos mbed
Fork of f4_sd_imu_4 by
messaggi.h@11:3b5e035ffef9, 2018-01-21 (annotated)
- Committer:
- rattokiller
- Date:
- Sun Jan 21 20:40:24 2018 +0000
- Revision:
- 11:3b5e035ffef9
programma con scrittura sd con concorenza
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rattokiller | 11:3b5e035ffef9 | 1 | char num_n0(int a){ |
rattokiller | 11:3b5e035ffef9 | 2 | return a%256; |
rattokiller | 11:3b5e035ffef9 | 3 | } |
rattokiller | 11:3b5e035ffef9 | 4 | char num_n1(int a){ |
rattokiller | 11:3b5e035ffef9 | 5 | return (char)( a / 256); |
rattokiller | 11:3b5e035ffef9 | 6 | } |
rattokiller | 11:3b5e035ffef9 | 7 | |
rattokiller | 11:3b5e035ffef9 | 8 | typedef struct { |
rattokiller | 11:3b5e035ffef9 | 9 | char ax[2]; |
rattokiller | 11:3b5e035ffef9 | 10 | char ay[2]; |
rattokiller | 11:3b5e035ffef9 | 11 | char az[2]; |
rattokiller | 11:3b5e035ffef9 | 12 | char gx[2]; |
rattokiller | 11:3b5e035ffef9 | 13 | char gy[2]; |
rattokiller | 11:3b5e035ffef9 | 14 | char gz[2]; |
rattokiller | 11:3b5e035ffef9 | 15 | } message_t; |
rattokiller | 11:3b5e035ffef9 | 16 | |
rattokiller | 11:3b5e035ffef9 | 17 | void copia(message_t & a, message_t b){ |
rattokiller | 11:3b5e035ffef9 | 18 | for(int i=0;i<2;i++){ |
rattokiller | 11:3b5e035ffef9 | 19 | a.ax[i]=b.ax[i]; |
rattokiller | 11:3b5e035ffef9 | 20 | a.ay[i]=b.ay[i]; |
rattokiller | 11:3b5e035ffef9 | 21 | a.az[i]=b.az[i]; |
rattokiller | 11:3b5e035ffef9 | 22 | a.gx[i]=b.gx[i]; |
rattokiller | 11:3b5e035ffef9 | 23 | a.gy[i]=b.gy[i]; |
rattokiller | 11:3b5e035ffef9 | 24 | a.gz[i]=b.gz[i]; |
rattokiller | 11:3b5e035ffef9 | 25 | |
rattokiller | 11:3b5e035ffef9 | 26 | } |
rattokiller | 11:3b5e035ffef9 | 27 | |
rattokiller | 11:3b5e035ffef9 | 28 | } |
rattokiller | 11:3b5e035ffef9 | 29 | void scrivi_imu(message_t* ); |
rattokiller | 11:3b5e035ffef9 | 30 | MemoryPool<message_t, 16> mpool; |
rattokiller | 11:3b5e035ffef9 | 31 | Queue<message_t, 16> queue; |
rattokiller | 11:3b5e035ffef9 | 32 | |
rattokiller | 11:3b5e035ffef9 | 33 | /* Send Thread */ |
rattokiller | 11:3b5e035ffef9 | 34 | void invia_m (int ax,int ay,int az,int gx,int gy,int gz) { |
rattokiller | 11:3b5e035ffef9 | 35 | |
rattokiller | 11:3b5e035ffef9 | 36 | { |
rattokiller | 11:3b5e035ffef9 | 37 | |
rattokiller | 11:3b5e035ffef9 | 38 | message_t *message = mpool.alloc(); |
rattokiller | 11:3b5e035ffef9 | 39 | message->ax[0] = num_n0(ax); message->ax[1] = num_n1(ax); |
rattokiller | 11:3b5e035ffef9 | 40 | message->ay[0] = num_n0(ay); message->ay[1] = num_n1(ay); |
rattokiller | 11:3b5e035ffef9 | 41 | message->az[0] = num_n0(az); message->az[1] = num_n1(az); |
rattokiller | 11:3b5e035ffef9 | 42 | message->gx[0] = num_n0(gx); message->gx[1] = num_n1(gx); |
rattokiller | 11:3b5e035ffef9 | 43 | message->gy[0] = num_n0(gy); message->gy[1] = num_n1(gy); |
rattokiller | 11:3b5e035ffef9 | 44 | message->gz[0] = num_n0(gz); message->gz[1] = num_n1(gz); |
rattokiller | 11:3b5e035ffef9 | 45 | queue.put(message); |
rattokiller | 11:3b5e035ffef9 | 46 | Thread::wait(1000); |
rattokiller | 11:3b5e035ffef9 | 47 | } |
rattokiller | 11:3b5e035ffef9 | 48 | } |
rattokiller | 11:3b5e035ffef9 | 49 | |
rattokiller | 11:3b5e035ffef9 | 50 | void scrivi_m(void) { |
rattokiller | 11:3b5e035ffef9 | 51 | |
rattokiller | 11:3b5e035ffef9 | 52 | |
rattokiller | 11:3b5e035ffef9 | 53 | while (true) { |
rattokiller | 11:3b5e035ffef9 | 54 | Thread::wait(0.001); |
rattokiller | 11:3b5e035ffef9 | 55 | osEvent evt = queue.get(); |
rattokiller | 11:3b5e035ffef9 | 56 | while (evt.status == osEventMessage) { |
rattokiller | 11:3b5e035ffef9 | 57 | message_t *message = (message_t*)evt.value.p; |
rattokiller | 11:3b5e035ffef9 | 58 | |
rattokiller | 11:3b5e035ffef9 | 59 | |
rattokiller | 11:3b5e035ffef9 | 60 | scrivi_imu(message); |
rattokiller | 11:3b5e035ffef9 | 61 | |
rattokiller | 11:3b5e035ffef9 | 62 | |
rattokiller | 11:3b5e035ffef9 | 63 | mpool.free(message); |
rattokiller | 11:3b5e035ffef9 | 64 | osEvent evt = queue.get(); |
rattokiller | 11:3b5e035ffef9 | 65 | } |
rattokiller | 11:3b5e035ffef9 | 66 | } |
rattokiller | 11:3b5e035ffef9 | 67 | } |