A library for observing RAM utilization with an oscilloscope.

Committer:
altasoul
Date:
Tue Nov 12 07:16:15 2013 +0000
Revision:
0:e996e4a4c783
Child:
1:b6905730f836
first light

Who changed what in which revision?

UserRevisionLine numberNew contents of line
altasoul 0:e996e4a4c783 1 #include "mbed.h"
altasoul 0:e996e4a4c783 2 #include "scope_RAM.h"
altasoul 0:e996e4a4c783 3
altasoul 0:e996e4a4c783 4 RAMscope::RAMscope(
altasoul 0:e996e4a4c783 5 PinName trigger_pin,
altasoul 0:e996e4a4c783 6 PinName value_pin
altasoul 0:e996e4a4c783 7 ) :
altasoul 0:e996e4a4c783 8 trigger_output(trigger_pin),
altasoul 0:e996e4a4c783 9 value_output(value_pin),
altasoul 0:e996e4a4c783 10 scope_ram_timer(&RAMscope::scope_ram, osTimerPeriodic, (void *)this)
altasoul 0:e996e4a4c783 11 {
altasoul 0:e996e4a4c783 12
altasoul 0:e996e4a4c783 13 }
altasoul 0:e996e4a4c783 14
altasoul 0:e996e4a4c783 15 void RAMscope::scope_ram(const void *arg) {
altasoul 0:e996e4a4c783 16 RAMscope *instance = (RAMscope*)arg;
altasoul 0:e996e4a4c783 17 instance->output_to_scope();
altasoul 0:e996e4a4c783 18 }
altasoul 0:e996e4a4c783 19
altasoul 0:e996e4a4c783 20 void RAMscope::output_to_scope(void) {
altasoul 0:e996e4a4c783 21 int i;
altasoul 0:e996e4a4c783 22 unsigned char *p = start;
altasoul 0:e996e4a4c783 23 trigger_output = true; trigger_output = false;
altasoul 0:e996e4a4c783 24 for (i=0; i<length; i++) {
altasoul 0:e996e4a4c783 25 value_output = *p++ == WATERMARK;
altasoul 0:e996e4a4c783 26 }
altasoul 0:e996e4a4c783 27 value_output = false;
altasoul 0:e996e4a4c783 28 }
altasoul 0:e996e4a4c783 29
altasoul 0:e996e4a4c783 30 void RAMscope::watermark(unsigned char *st, int len) {
altasoul 0:e996e4a4c783 31 while (len--) *st++ = WATERMARK;
altasoul 0:e996e4a4c783 32 }
altasoul 0:e996e4a4c783 33
altasoul 0:e996e4a4c783 34 void RAMscope::scope(unsigned char *st, int len, int period) {
altasoul 0:e996e4a4c783 35 start = st;
altasoul 0:e996e4a4c783 36 length = len;
altasoul 0:e996e4a4c783 37 scope_ram_timer.start(period);
altasoul 0:e996e4a4c783 38 }
altasoul 0:e996e4a4c783 39
altasoul 0:e996e4a4c783 40 void RAMscope::stop() {
altasoul 0:e996e4a4c783 41 scope_ram_timer.stop();
altasoul 0:e996e4a4c783 42 }