diff --git a/PLAN b/PLAN new file mode 100644 index 0000000..0df77f6 --- /dev/null +++ b/PLAN @@ -0,0 +1,12 @@ +Dinge die zu tun sind: + +- Schaltung entwerfen +- Schaltung löten +- blech sägen +- brett sägen +- brett aushölen +- brett fasen +- innenleben planen +- impulsgeber befestigen +- platte und heizelemente befestigen u. bohren +- brett wachsen diff --git a/firmware/codefragmente.c b/firmware/codefragmente.c new file mode 100644 index 0000000..44bef06 --- /dev/null +++ b/firmware/codefragmente.c @@ -0,0 +1,49 @@ + +// alter drehimpulsgebercode, aus marcus-thermometer +void buttonpoll(){ // runs with 1.2kHz + uint8_t l,r,t,flanks,dir; + l=BUTTPIN & _BV(BUTTLPIN); + r=BUTTPIN & _BV(BUTTRPIN); + t=BUTTPIN & _BV(BUTTTPIN); + + // debounce code + if (t != butttold && !butttbounce ) { + butttold = t; + butttbounce = BUTT_BOUNCE; + if (t == 0) { // active low + buttonevent |= BUTTEV_PUSH; + } + } + + flanks=0; + dir=0; + if (l != buttlold) { + flanks += 1; + } + if (r != buttrold) { + flanks += 1; + dir = 1; + } + if (flanks == 1){ // we need to have exactly one flank, 0 flanks are no + // change, and 2 flanks are too fast (error) + if (l) { + dir ^= 1; + } + if (r) { + dir ^= 1; + } + if ((r && l) || (!r && !l)) { + buttoninc += dir ? -1 : 1; + } + } + + buttlold = l; + buttrold = r; + + + if(butttbounce){ + butttbounce -= 1; + } + +} +