programma di test per vedere se funziona

Dependencies:   SDFileSystem_conMOD mbed-rtos mbed

Fork of f4_sd_imu_4 by ratto killer

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers messaggi.h Source File

messaggi.h

00001 char num_n0(int a){
00002   return a%256;
00003 }
00004 char num_n1(int a){
00005     return (char)( a / 256);
00006 }
00007 
00008 typedef struct {
00009     char ax[2];
00010     char ay[2];
00011     char az[2];
00012     char gx[2];
00013     char gy[2];
00014     char gz[2];             
00015 } message_t;
00016 
00017 void copia(message_t & a, message_t b){
00018    for(int i=0;i<2;i++){
00019     a.ax[i]=b.ax[i];
00020     a.ay[i]=b.ay[i];
00021     a.az[i]=b.az[i];
00022     a.gx[i]=b.gx[i];
00023     a.gy[i]=b.gy[i];
00024     a.gz[i]=b.gz[i];
00025   
00026     } 
00027     
00028 }
00029 void scrivi_imu(message_t* );
00030 MemoryPool<message_t, 16> mpool;
00031 Queue<message_t, 16> queue;
00032 
00033 /* Send Thread */
00034 void invia_m (int ax,int ay,int az,int gx,int gy,int gz) {
00035     
00036     {
00037         
00038         message_t *message = mpool.alloc();
00039         message->ax[0] = num_n0(ax); message->ax[1] = num_n1(ax);
00040         message->ay[0] = num_n0(ay); message->ay[1] = num_n1(ay);
00041         message->az[0] = num_n0(az); message->az[1] = num_n1(az);
00042         message->gx[0] = num_n0(gx); message->gx[1] = num_n1(gx);
00043         message->gy[0] = num_n0(gy); message->gy[1] = num_n1(gy);
00044         message->gz[0] = num_n0(gz); message->gz[1] = num_n1(gz);
00045         queue.put(message);
00046         Thread::wait(1000);
00047     }
00048 }
00049 
00050 void scrivi_m(void) {
00051     
00052     
00053     while (true) {
00054         Thread::wait(0.001);
00055         osEvent evt = queue.get();
00056         while (evt.status == osEventMessage) {
00057             message_t *message = (message_t*)evt.value.p;
00058            
00059            
00060            scrivi_imu(message);
00061 
00062            
00063             mpool.free(message);
00064             osEvent evt = queue.get();
00065         }
00066     }
00067 }