Commit f0c087f4 authored by Birte Kristina Friesel's avatar Birte Kristina Friesel
Browse files

counter: Provide typedefs fore value/overflow type

parent 6fd09b2b
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
#include <avr/io.h>
#include <avr/interrupt.h>

typedef counter_value_t uint16_t;
typedef counter_overflowed_t uint8_t;

class Counter {
	private:
		Counter(const Counter &copy);
+9 −4
Original line number Diff line number Diff line
@@ -7,26 +7,31 @@ extern "C" {
}
#include "c_types.h"

typedef counter_value_t uint32_t;
typedef counter_overflowed_t uint32_t;

class Counter {
	private:
		Counter(const Counter &copy);
		uint32_t start_cycles;

	public:
		Counter() : start_cycles(0) {}
		uint32_t value;
		uint32_t overflowed;

		Counter() : start_cycles(0), value(0), overflowed(0) {}

		inline void start() {
			asm volatile ("esync; rsr %0,ccount":"=a" (start_cycles));
		}

		inline uint32_t stop() {
		inline void stop() {
			uint32_t stop_cycles;
			asm volatile ("esync; rsr %0,ccount":"=a" (stop_cycles));
			if (stop_cycles > start_cycles) {
				return stop_cycles - start_cycles;
				value = stop_cycles - start_cycles;
			} else {
				return 0;
				overflowed = 1;
			}
		}
};
+3 −0
Original line number Diff line number Diff line
#include <msp430.h>
#include <stdint.h>

typedef counter_value_t uint16_t;
typedef counter_overflowed_t uint8_t;

class Counter {
	private:
		Counter(const Counter &copy);
+3 −0
Original line number Diff line number Diff line
#include <msp430.h>
#include <stdint.h>

typedef uint16_t counter_value_t;
typedef uint8_t counter_overflowed_t;

class Counter {
	private:
		Counter(const Counter &copy);
+3 −0
Original line number Diff line number Diff line
#include <stdint.h>
#include <time.h>

typedef uint64_t counter_value_t;
typedef uint8_t counter_overflowed_t;

class Counter {
	private:
		Counter(const Counter &copy);