projects
/
svn42.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
working dart shit first version
[svn42.git]
/
dart
/
dart.pde
diff --git
a/dart/dart.pde
b/dart/dart.pde
index
1ed2a0f
..
52a2063
100644
(file)
--- a/
dart/dart.pde
+++ b/
dart/dart.pde
@@
-24,25
+24,22
@@
union union16 {
uint16_t uint16;
};
uint16_t uint16;
};
+uint8_t zahlen[] = {115,110,46,78,51,83,82,68,99,105,41,73,35,67,50,36,113,108,44,76,49,81,114,100,98,101,37,69,34,66,102,109,111,116,52,84,47,79,57,89,106,97,33,65,42,74,38,45,112,104,40,72,48,80,0,0,103,107,43,75,39,71,70,77} ;
+
union union32 {
byte uint8[4];
uint16_t uint16[2];
uint32_t uint32;
};
union union32 {
byte uint8[4];
uint16_t uint16[2];
uint32_t uint32;
};
-
-//********************************************************************//
-
typedef unsigned char byte;
typedef unsigned char byte;
-//********************************************************************//
-/*
void start_timer()
{
// timer 1: 2 ms
TCCR1A = 0; // prescaler 1:8, WGM = 4 (CTC)
void start_timer()
{
// timer 1: 2 ms
TCCR1A = 0; // prescaler 1:8, WGM = 4 (CTC)
- TCCR1B = 1<<WGM12 | 1<<CS11; //
- OCR1A = 159; // (1+159)*8 = 1280 -> 0.08ms @ 16 MHz -> 1*alpha
+ TCCR1B = 1<<WGM12 | 1<<CS10 | 1<<CS11; //
+ OCR1A = 65000; // (1+159)*8 = 1280 -> 0.08ms @ 16 MHz -> 1*alpha
// OCR1A = 207; // (1+207)*8 = 1664 -> 0.104ms @ 16 MHz -> 1*alpha
TCNT1 = 0; // reseting timer
TIMSK1 = 1<<OCIE1A; // enable Interrupt
// OCR1A = 207; // (1+207)*8 = 1664 -> 0.104ms @ 16 MHz -> 1*alpha
TCNT1 = 0; // reseting timer
TIMSK1 = 1<<OCIE1A; // enable Interrupt
@@
-54,7
+51,14
@@
void stop_timer() // stop the timer
TCCR1B = 0; // no clock source
TIMSK1 = 0; // disable timer interrupt
}
TCCR1B = 0; // no clock source
TIMSK1 = 0; // disable timer interrupt
}
-*/
+
+ISR(TIMER1_COMPA_vect)
+{
+ stop_timer();
+ PCICR|= B111;
+}
+
+
byte last_input=0;
byte last_output=0;
static void PCint() {
byte last_input=0;
byte last_output=0;
static void PCint() {
@@
-66,14
+70,33
@@
static void PCint() {
if (!input)
return;
if (!input)
return;
- if (last_input==input && last_output==output)
- return;
+ if (!output)
+ return;
+ //if (last_input==input && last_output==output)
+ //return;
last_input=input;
last_output=output;
last_input=input;
last_output=output;
- Serial.print(output,HEX);
- Serial.print('\t');
- Serial.println(input,HEX);
- return;
+// Serial.print(output,HEX);
+// Serial.print('\t');
+// Serial.print(input,HEX);
+// Serial.print('\t');
+
+ byte value=0;
+ while(input>>=1)
+ value++;
+ value<<=3;
+ while(output>>=1)
+ value++;
+ //Serial.println(value,HEX);
+ byte zahl = zahlen[value];
+
+ byte multi = zahl >> 5;
+ byte base = zahl & B11111;
+ Serial.print(0+multi);
+ Serial.print("\t");
+ Serial.println(0+base);
+ PCICR&= ~ B111; // Disable Interrupt
+ start_timer();
}
}
@@
-106,7
+129,6
@@
void setup()
PCMSK1=PINC_MASK & INPUT_SIG_PORTC;
PCMSK2=PIND_MASK & INPUT_SIG_PORTD;
PCICR|= B111;
PCMSK1=PINC_MASK & INPUT_SIG_PORTC;
PCMSK2=PIND_MASK & INPUT_SIG_PORTD;
PCICR|= B111;
-
// start_timer();
}
// start_timer();
}
@@
-118,6
+140,4
@@
void loop()
{
// Serial.Serial.println("foo");
// return;
{
// Serial.Serial.println("foo");
// return;
-
-
}
}