X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=hantek_6022bl.c;h=af445cf2088253b4472b1b690164e8f320a383cf;hb=65b34f7ea6d5f250a09c878d929e5c5312093e54;hp=4920047cdfed7ccf0a4e294465fd6c1683b5f71e;hpb=e583c3fcd0bd1e4a44846fba5e80bbea1ff215a2;p=sigrok-firmware-fx2lafw.git diff --git a/hantek_6022bl.c b/hantek_6022bl.c index 4920047c..af445cf2 100644 --- a/hantek_6022bl.c +++ b/hantek_6022bl.c @@ -29,6 +29,10 @@ /* Toggle the 1kHz calibration pin, only accurate up to ca. 8MHz. */ #define TOGGLE_CALIBRATION_PIN() PC2 = !PC2 +#define LED_CLEAR() PC0 = 1; PC1 = 1; +#define LED_GREEN() PC0 = 1; PC1 = 0; +#define LED_RED() PC0 = 0; PC1 = 1; + /* Change to support as many interfaces as you need. */ static BYTE altiface = 0; @@ -73,13 +77,8 @@ void timer2_isr(void) __interrupt TF2_ISR { TOGGLE_CALIBRATION_PIN(); - if (ledcounter) { - if (--ledcounter == 0) { - /* Clear LED. */ - PC0 = 1; - PC1 = 1; - } - } + if (ledcounter && (--ledcounter == 0)) + LED_CLEAR(); TF2 = 0; } @@ -184,10 +183,9 @@ static void start_sampling(void) GPIFTCB0 = 0; GPIFTRIG = (altiface == 0) ? 6 : 4; - /* Set green LED, don't clear LED. */ + /* Set green LED, don't clear LED afterwards (ledcounter = 0). */ + LED_GREEN(); ledcounter = 0; - PC0 = 1; - PC1 = 0; } static void select_interface(BYTE alt) @@ -359,9 +357,8 @@ BOOL handle_vendorcommand(BYTE cmd) { stop_sampling(); - /* Set red LED. */ - PC0 = 0; - PC1 = 1; + /* Set red LED, clear after timeout. */ + LED_RED(); ledcounter = 1000; /* Clear EP0BCH/L for each valid command. */