X-Git-Url: https://git.realraum.at/?p=svn42.git;a=blobdiff_plain;f=rf433rcv%2Fteensy%2Fexample.c;h=ebf77e2cdf86f94047b85a58e557a1d736c6e36a;hp=282e0bcb0ccec420d86002d65b8264f0b7dd17d9;hb=02293cb00639b97ca422619ee15f5981a5b3ffd0;hpb=894be2570b2c0198a4c7b87f385957c74b836bb3 diff --git a/rf433rcv/teensy/example.c b/rf433rcv/teensy/example.c index 282e0bc..ebf77e2 100644 --- a/rf433rcv/teensy/example.c +++ b/rf433rcv/teensy/example.c @@ -41,6 +41,43 @@ uint8_t write_buffer[2][64]; // buffer for writing usb signals uint8_t rf_send_buffer[RF_SEND_BUFFER_LEN_MAX]; // buffer for sending rf433 signals uint8_t rf_send_buffer_len=0; + +void reset() +{ + cli(); + // disable watchdog, if enabled + // disable all peripherals + UDCON = 1; + USBCON = (1<0) { - if (read_buffer[0]=='b') //begin capture + if (read_buffer[0]=='r') //reset + reset(); + else if (read_buffer[0]=='b') //begin capture capture=1; else if (read_buffer[0]=='e') //end capture capture=0; @@ -120,16 +159,17 @@ ISR(TIMER0_COMPA_vect) rf_send--; } else if (rf_send_reload_count) { rf_send=rf_send_reload; - } else if (capture) { - write_buffer[active_buffer][output_count/8]<<=1; - write_buffer[active_buffer][output_count++/8]|=PINB&1; - if (output_count>=64*8) - { - output_count=0; - active_buffer=active_buffer?0:1; - send_buffer=1; + } else { + PORTF&=~1; + if (capture) { + write_buffer[active_buffer][output_count/8]<<=1; + write_buffer[active_buffer][output_count++/8]|=PINB&1; + if (output_count>=64*8) + { + output_count=0; + active_buffer=active_buffer?0:1; + send_buffer=1; + } } } } - -