Git Product home page Git Product logo

analogscanner's People

Contributors

m0w1337 avatar merose avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

analogscanner's Issues

Compiling in DUE

Hello, I know you haven´t tested on Due, but well, I'am, so I got the following results, although on 1.5.6r2 didnt...
It seems to me it is plainly a matter of names not being adressed but I'm really not familiar with the avr stuff... Not sure if I can be of any help, good day:

In file included from G:\media\arduino\arduino-1.5.7\hardware\arduino\sam\cores\arduino/Arduino.h:31:0,
from G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp:36:
G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp: In member function 'void AnalogScanner::beginScanning()':
G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp:229:7: error: 'ADCSRA' was not declared in this scope
sbi(ADCSRA, ADEN); // Enable the ADC.
^
G:\media\arduino\arduino-1.5.7\hardware\arduino\sam\cores\arduino/avr/pgmspace.h:10:23: note: in definition of macro '_SFR_BYTE'
#define _SFR_BYTE(n) (n)
^
G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp:229:3: note: in expansion of macro 'sbi'
sbi(ADCSRA, ADEN); // Enable the ADC.
^
G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp:229:15: error: 'ADEN' was not declared in this scope
sbi(ADCSRA, ADEN); // Enable the ADC.
^
G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp:45:46: note: in definition of macro 'sbi'
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
^
G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp:45:49: error: '_BV' was not declared in this scope
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
^
G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp:229:3: note: in expansion of macro 'sbi'
sbi(ADCSRA, ADEN); // Enable the ADC.
^
In file included from G:\media\arduino\arduino-1.5.7\hardware\arduino\sam\cores\arduino/Arduino.h:31:0,
from G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp:36:
G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp:231:7: error: 'ADMUX' was not declared in this scope
cbi(ADMUX, ADLAR); // Make sure the ADC value it right-jusitified.
^
G:\media\arduino\arduino-1.5.7\hardware\arduino\sam\cores\arduino/avr/pgmspace.h:10:23: note: in definition of macro '_SFR_BYTE'
#define _SFR_BYTE(n) (n)
^
G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp:231:3: note: in expansion of macro 'cbi'
cbi(ADMUX, ADLAR); // Make sure the ADC value it right-jusitified.
^
G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp:231:14: error: 'ADLAR' was not declared in this scope
cbi(ADMUX, ADLAR); // Make sure the ADC value it right-jusitified.
^
G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp:42:47: note: in definition of macro 'cbi'
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
^
G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp:232:15: error: 'ADIE' was not declared in this scope
sbi(ADCSRA, ADIE); // Enable ADC complete interrupts.
^
G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp:45:46: note: in definition of macro 'sbi'
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
^
In file included from G:\media\arduino\arduino-1.5.7\hardware\arduino\sam\cores\arduino/Arduino.h:31:0,
from G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp:36:
G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp: In member function 'void AnalogScanner::endScanning()':
G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp:240:7: error: 'ADCSRA' was not declared in this scope
cbi(ADCSRA, ADEN); // Disable the ADC.
^
G:\media\arduino\arduino-1.5.7\hardware\arduino\sam\cores\arduino/avr/pgmspace.h:10:23: note: in definition of macro '_SFR_BYTE'
#define _SFR_BYTE(n) (n)
^
G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp:240:3: note: in expansion of macro 'cbi'
cbi(ADCSRA, ADEN); // Disable the ADC.
^
G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp:240:15: error: 'ADEN' was not declared in this scope
cbi(ADCSRA, ADEN); // Disable the ADC.
^
G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp:42:47: note: in definition of macro 'cbi'
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
^
G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp:42:50: error: '_BV' was not declared in this scope
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
^
G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp:240:3: note: in expansion of macro 'cbi'
cbi(ADCSRA, ADEN); // Disable the ADC.
^
G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp:241:15: error: 'ADIE' was not declared in this scope
cbi(ADCSRA, ADIE); // Disable ADC complete interrupts.
^
G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp:42:47: note: in definition of macro 'cbi'
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
^
G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp: In member function 'void AnalogScanner::startNextScan()':
G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp:255:5: error: 'ADMUX' was not declared in this scope
ADMUX = (analogRef << 6) | (index & 7);
^
In file included from G:\media\arduino\arduino-1.5.7\hardware\arduino\sam\cores\arduino/Arduino.h:31:0,
from G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp:36:
G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp:256:9: error: 'ADCSRA' was not declared in this scope
sbi(ADCSRA, ADSC); // Start the ADC conversion.
^
G:\media\arduino\arduino-1.5.7\hardware\arduino\sam\cores\arduino/avr/pgmspace.h:10:23: note: in definition of macro '_SFR_BYTE'
#define _SFR_BYTE(n) (n)
^
G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp:256:5: note: in expansion of macro 'sbi'
sbi(ADCSRA, ADSC); // Start the ADC conversion.
^
G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp:256:17: error: 'ADSC' was not declared in this scope
sbi(ADCSRA, ADSC); // Start the ADC conversion.
^
G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp:45:46: note: in definition of macro 'sbi'
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
^
G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp:45:49: error: '_BV' was not declared in this scope
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
^
G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp:256:5: note: in expansion of macro 'sbi'
sbi(ADCSRA, ADSC); // Start the ADC conversion.
^
G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp: In member function 'void AnalogScanner::processScan()':
G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp:263:13: error: 'ADCL' was not declared in this scope
int low = ADCL;
^
G:\Lea\Arduino\libraries\AnalogScanner\AnalogScanner.cpp:264:14: error: 'ADCH' was not declared in this scope
int high = ADCH;
^

Callback indexes look wrong

Referring to my example below, it looks like the callback indexes are not associated to the correct ADC channel: a read on A1 will report index 2; A2 index 3; A3 index 4; A4 index 5; A5 index 0.
In my case I scan through 6 channels, but only one has a callback.

Another example: scanning A0 and A1 only will return the values respectively to index 1 and 0 (reversed).


In this code, readings not reassigned by a callback are -1.

#include <AnalogScanner.h>

AnalogScanner scanner;

int scanOrder[] = {A0, A1, A2, A3, A4, A5};
const int SCAN_COUNT = sizeof(scanOrder) / sizeof(scanOrder[0]);

// text callback values
int readings[6] = {-1,-1,-1,-1,-1,-1};  // available for 6 ADC channels

void callback_on_read(int index, int pin, int newValue) {
    readings[index] = index; // <------- it must assign index 5 here, 
                            // but only assign 0 to readings[0]
}

void setup() {
  Serial.begin(38400);
  scanner.setScanOrder(SCAN_COUNT, scanOrder);
  scanner.beginScanning();

  
  // scanner.setCallback(A0, callback_on_read);
  // scanner.setCallback(A1, callback_on_read);
  // scanner.setCallback(A2, callback_on_read);
  // scanner.setCallback(A3, callback_on_read);
  // scanner.setCallback(A4, callback_on_read);
  scanner.setCallback(A5, callback_on_read); // <------ it must callback and fill readings[5] 
}

void loop() {
  for (int i=0; i < SCAN_COUNT; ++i) {
    if (i > 0) {
      Serial.print(" ");
    }
    Serial.print("A");
    Serial.print(i);
    Serial.print("=");

    Serial.print(readings[i]);
  }
  
  Serial.println();
  delay(1);
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.