ejemplo de memoria

Dependencies:   mbed

Committer:
fabeltranm
Date:
Thu Mar 08 00:59:59 2018 +0000
Revision:
0:abf0c8974408
ejemplo

Who changed what in which revision?

UserRevisionLine numberNew contents of line
fabeltranm 0:abf0c8974408 1 #include "mbed.h"
fabeltranm 0:abf0c8974408 2
fabeltranm 0:abf0c8974408 3 #define MEM_SIZE 10
fabeltranm 0:abf0c8974408 4 #define MEM_TYPE uint8_t
fabeltranm 0:abf0c8974408 5 int mem_head = 0;
fabeltranm 0:abf0c8974408 6 int mem_tail = 0;
fabeltranm 0:abf0c8974408 7 uint8_t full = 0;
fabeltranm 0:abf0c8974408 8
fabeltranm 0:abf0c8974408 9 MEM_TYPE buffer[MEM_SIZE];
fabeltranm 0:abf0c8974408 10 Serial command(USBTX, USBRX);
fabeltranm 0:abf0c8974408 11
fabeltranm 0:abf0c8974408 12 uint32_t mem_free()
fabeltranm 0:abf0c8974408 13 {
fabeltranm 0:abf0c8974408 14 mem_head=0;
fabeltranm 0:abf0c8974408 15 full=0;
fabeltranm 0:abf0c8974408 16 }
fabeltranm 0:abf0c8974408 17
fabeltranm 0:abf0c8974408 18 uint8_t mem_put(MEM_TYPE data)
fabeltranm 0:abf0c8974408 19 {
fabeltranm 0:abf0c8974408 20
fabeltranm 0:abf0c8974408 21 if (full)
fabeltranm 0:abf0c8974408 22 return 1;
fabeltranm 0:abf0c8974408 23 buffer[mem_head] = data;
fabeltranm 0:abf0c8974408 24 mem_head += 1;
fabeltranm 0:abf0c8974408 25 if (mem_head == MEM_SIZE)
fabeltranm 0:abf0c8974408 26 full =1;
fabeltranm 0:abf0c8974408 27 return 0;
fabeltranm 0:abf0c8974408 28 }
fabeltranm 0:abf0c8974408 29 uint8_t mem_get(MEM_TYPE* data)
fabeltranm 0:abf0c8974408 30 {
fabeltranm 0:abf0c8974408 31 if (mem_head == 0)
fabeltranm 0:abf0c8974408 32 return 1;
fabeltranm 0:abf0c8974408 33 if (mem_head == mem_tail)
fabeltranm 0:abf0c8974408 34 return 1;
fabeltranm 0:abf0c8974408 35
fabeltranm 0:abf0c8974408 36
fabeltranm 0:abf0c8974408 37 *data = buffer[mem_tail];
fabeltranm 0:abf0c8974408 38 mem_tail += 1;
fabeltranm 0:abf0c8974408 39
fabeltranm 0:abf0c8974408 40 return 0;
fabeltranm 0:abf0c8974408 41 }
fabeltranm 0:abf0c8974408 42
fabeltranm 0:abf0c8974408 43 int main(){
fabeltranm 0:abf0c8974408 44
fabeltranm 0:abf0c8974408 45 mem_put(command.getc());
fabeltranm 0:abf0c8974408 46 mem_put(command.getc());
fabeltranm 0:abf0c8974408 47 mem_put(command.getc());
fabeltranm 0:abf0c8974408 48 mem_put(command.getc());
fabeltranm 0:abf0c8974408 49 MEM_TYPE val;
fabeltranm 0:abf0c8974408 50 mem_get(&val);
fabeltranm 0:abf0c8974408 51 command.putc(val);
fabeltranm 0:abf0c8974408 52 }