From f0d344d2686628c84f9ce860ac5f276909a0d44a Mon Sep 17 00:00:00 2001 From: cpldcpu Date: Sat, 6 Jun 2015 19:18:07 +0200 Subject: cleanup: Temporarily removed ruby and upload --- upgrade/utils.h | 90 --------------------------------------------------------- 1 file changed, 90 deletions(-) delete mode 100644 upgrade/utils.h (limited to 'upgrade/utils.h') diff --git a/upgrade/utils.h b/upgrade/utils.h deleted file mode 100644 index c84ee56..0000000 --- a/upgrade/utils.h +++ /dev/null @@ -1,90 +0,0 @@ -#include -#include - -// For the niceness -typedef unsigned char byte; -typedef unsigned char boolean; - -// make bit & value, eg bit(5) #=> 0b00010000 -#define bit(number) _BV(number) -#define pin(number) _BV(number) - -// USI serial aliases -#define USIOutputPort PORTE -#define USIInputPort PINE -#define USIDirectionPort DDRE -#define USIClockPin PE4 -#define USIDataInPin PE5 -#define USIDataOutPin PE6 - -// booleans -#define on 255 -#define off 0 -#define true 1 -#define false 0 -#define yes true -#define no false - -// ensure a value is within the bounds of a minimum and maximum (inclusive) -#define constrainUpper(value, max) (value > max ? max : value) -#define constrainLower(value, min) (value < min ? min : value) -#define constrain(value, min, max) constrainLower(constrainUpper(value, max), min) -#define multiplyDecimal(a,b) (((a) * (b)) / 256) - -// set a pin on DDRB to be an input or an output - i.e. becomeOutput(pin(3)); -#define inputs(pinmap) DDRB &= ~(pinmap) -#define outputs(pinmap) DDRB |= (pinmap) - -// turn some pins on or off -#define pinsOn(pinmap) PORTB |= (pinmap) -#define pinsOff(pinmap) PORTB &= ~(pinmap) -#define pinsToggle(pinmap) PORTB ^= pinmap - -// turn a single pin on or off -#define pinOn(pin) pinsOn(bit(pin)) -#define pinOff(pin) pinsOff(bit(pin)) -// TODO: Should be called pinToggle -#define toggle(pin) pinsToggle(bit(pin)) - -// delay a number of microseconds - or as close as we can get -#if F_CPU == 16500000 - // special version to deal with half-mhz speed. in a resolution of 2us increments, rounded up - // this loop has been tuned empirically with an oscilloscope and works in avr-gcc 4.5.1 - static inline void microdelay(int microseconds) { - while (microseconds > 1) { - // 16 nops - asm("NOP");asm("NOP");asm("NOP");asm("NOP");asm("NOP");asm("NOP");asm("NOP");asm("NOP"); - asm("NOP");asm("NOP");asm("NOP");asm("NOP");asm("NOP");asm("NOP");asm("NOP");asm("NOP"); - // 16 nops - asm("NOP");asm("NOP");asm("NOP");asm("NOP");asm("NOP");asm("NOP");asm("NOP");asm("NOP"); - asm("NOP");asm("NOP");asm("NOP"); - - - microseconds -= 2; - } - } -#else - #define microdelay(microseconds) _delay_loop_2(((microseconds) * (F_CPU / 100000)) / 40) -#endif - -// delay in milliseconds - a custom implementation to avoid util/delay's tendancy to import floating point math libraries -inline void delay(unsigned int ms) { - while (ms > 0) { - // delay for one millisecond (250*4 cycles, multiplied by cpu mhz) - // subtract number of time taken in while loop and decrement and other bits - _delay_loop_2((25 * F_CPU / 100000)); - ms--; - } -} - - - -// digital read returns 0 or 1 -#define get(pin) ((PINB >> pin) & 0b00000001) -#define getBitmap(bitmap) (PINB & bitmap) -static inline void set(byte pin, byte state) { - if (state) { pinOn(pin); } else { pinOff(pin); } - // alternatly: - // PORTB = (PORTB & ~(bit(pin)) | ((state & 1) << pin); -} - -- cgit v1.2.3