diff options
| author | Daniel Friesel <daniel.friesel@uos.de> | 2019-11-04 15:20:50 +0100 | 
|---|---|---|
| committer | Daniel Friesel <daniel.friesel@uos.de> | 2019-11-04 15:36:00 +0100 | 
| commit | 84a76ad5b9f91aa3d5df2d4f4480914bb7157099 (patch) | |
| tree | e7eae74e9ad5ede7ef0fbe90c1ab4de9c9af87b5 /src/app | |
| parent | e90590be17d3c5fe02f8b5d16edc987e81ca0730 (diff) | |
update energybench. showcase for MSP430 EnergyTrace inaccuracias
reported current is inaccurate (>8% energy deviation).
Also, EnergyTrace++ significantly increases sleep/wakeup times and thus
affects the sytem's timing.
Diffstat (limited to 'src/app')
| -rw-r--r-- | src/app/energybench/Makefile.inc | 2 | ||||
| -rw-r--r-- | src/app/energybench/main.cc | 105 | 
2 files changed, 39 insertions, 68 deletions
| diff --git a/src/app/energybench/Makefile.inc b/src/app/energybench/Makefile.inc index d7dcd37..e69de29 100644 --- a/src/app/energybench/Makefile.inc +++ b/src/app/energybench/Makefile.inc @@ -1,2 +0,0 @@ -timer_cycles ?= 1 -loop ?= 1 diff --git a/src/app/energybench/main.cc b/src/app/energybench/main.cc index 59a775e..27371b8 100644 --- a/src/app/energybench/main.cc +++ b/src/app/energybench/main.cc @@ -3,79 +3,52 @@  #include "driver/stdout.h"  #include "driver/uptime.h" -#ifndef TIMER_CYCLES -#error makeflag timer_cycles=1 required -#endif - -void loop(void) -{ -#if 0 -	static unsigned char i = 0; - -	switch (i) { -		case 0: -			gpio.led_on(0); -			gpio.led_off(0); -			break; -		case 1: -			gpio.led_on(0); -			arch.delay_us(1); -			gpio.led_off(0); -			break; -		case 2: -			gpio.led_on(0); -			arch.delay_us(2); -			gpio.led_off(0); -			break; -		case 3: -			gpio.led_on(1); -			gpio.led_off(1); -			break; -		case 4: -			gpio.led_on(1); -			arch.delay_us(1); -			gpio.led_off(1); -			break; -		case 5: -			gpio.led_on(1); -			arch.delay_us(2); -			gpio.led_off(1); -			break; -		case 6: -			gpio.led_on(0); -			break; -		case 7: -			gpio.led_off(0); -			break; -		case 8: -			gpio.led_on(1); -			break; -		case 9: -			gpio.led_off(1); -			break; -		default: -			break; -	} -	 - -	i = (i+1) % 10; -#endif -} -  int main(void)  {  	arch.setup();  	gpio.setup();  	kout.setup(); -	kout << "Hello, World!" << endl; -	kout << "Test, World!" << endl; -	kout << dec << uptime.get_cycles() << endl; -	kout << dec << uptime.get_cycles() << endl; -	kout << dec << uptime.get_cycles() << endl; -	kout << dec << uptime.get_cycles() << endl; +	gpio.output(GPIO::p1_1); + +	arch.delay_ms(5000); + +	gpio.write(GPIO::p1_1, 1); +	__delay_cycles(64000); // 8 ms +	__delay_cycles(64000); // 8 ms +	gpio.write(GPIO::p1_1, 0); +	__delay_cycles(64000); // 8 ms +	__delay_cycles(64000); // 8 ms +	gpio.write(GPIO::p1_1, 1); +	__delay_cycles(64000); // 8 ms +	__delay_cycles(64000); // 8 ms +	gpio.write(GPIO::p1_1, 0); + +	for (uint8_t i = 0; i < 200; i++) { +		arch.sleep_ms(50); +		gpio.write(GPIO::p1_1, 1); +		arch.sleep_ms(i); +		gpio.write(GPIO::p1_1, 0); +		arch.sleep_ms(i); +		gpio.write(GPIO::p1_1, 1); +		arch.sleep_ms(i); +		gpio.write(GPIO::p1_1, 0); +	} -	arch.idle_loop(); +	for (uint8_t i = 0; i < 200; i++) { +		arch.delay_ms(50); +		gpio.write(GPIO::p1_1, 1); +		arch.delay_ms(i); +		gpio.write(GPIO::p1_1, 0); +		arch.delay_ms(i); +		gpio.write(GPIO::p1_1, 1); +		arch.delay_ms(i); +		gpio.write(GPIO::p1_1, 0); +	} + +	while(1) { +		arch.idle(); +	}  	return 0;  } | 
