2 Libaries mit dem selben Timer


moin,

nachdem ich mein pwm problem scheinbar gelöst habe kommt nun das nächste.

scheinbar nutzen die softpwm und die irremote libary den selben timer,da ich nicht tief genug in der materie stecke um mich die timer ran zu wagen frage ich einfach mal ob jemand damit erfahrung hat oder evtl. sogar n workaround ;-)

lg

timme

code: [select]

#include <softpwm.h>
#include <irremote.h>

int array[12] = {255,255,255,255,255,255,255,255,255,255,255,255};
int update = 1;
int on = 1;
int irpin = 14;  // digitales signal von pin 14 abgreifen

irrecv irrecv(irpin);
decode_results results;




void setup(){
   pinmode (15, output);  // pin 13 (led) als ausgang festlegen
   irrecv.enableirin(); // ir empfaenger starten
   
  softpwmbegin();
 
  softpwmset(2, 0);
  softpwmset(3, 0);
  softpwmset(4, 0);
  softpwmset(5, 0);
  softpwmset(6, 0);
  softpwmset(7, 0);
  softpwmset(8, 0);
  softpwmset(9, 0);
  softpwmset(10, 0);
  softpwmset(11, 0);
  softpwmset(12, 0);
  softpwmset(13, 0);

 
 }

void loop(){
 
if (update == 1){
  _updatepwm();
  }

 if (irrecv.decode(&results))
 {
 
 irrecv.resume(); // das signal empfangen
 }
 
 switch(results.value) // abhaengig vom signal in den richtigen modus springen
 {
 
 case 16712445:// on/off
    if (on == 1){
      _setarray(000,0);
    }
    else{
      _setarray(000,255);
    }
 break;
 
 case 16726725: // +
 _setarray(000,999);
 break;
 
 case 16759365: // -
 _setarray(000,888);
 break;

 }
 
}


void _setarray(int ch, int hex_value){
    if (ch == 000){
      switch (hex_value){
        update = 1;
     
        case 999:
         
          (int = 0; <= 11; i++){
            if ( array[i] <= 250 ){
              array[i] = array[i]+5;
            }
             else{
             array[i] = 255;
             } 
             
          }
         
        case 888:
          (int = 0; <= 11; i++){
            if ( array[i] >= 5 ){
              array[i] = array[i]-5;
              update = 1;
             }
              else{
              array[i]= 0;
              }
             
          }
         
        case 1 ... 255:
          (int = 0; <= 11; i++){
            array[i] = hex_value;
             }         
      }
   
    }
}


void _updatepwm(){
int  array_cor = 2;
for (int = 0; <= 11; i++){
  array_cor++;
  softpwmset(array_cor, array[i]);
}
update = 0;
}
 


arduino: 1.8.0 (windows 7), board: "arduino nano, atmega328"

libraries\arduino-irremote-master\irremote.cpp.o (symbol plugin): in function `match(int, int)':

(.text+0x0): multiple definition of `__vector_7'

libraries\softpwm\softpwm.cpp.o (symbol plugin):(.text+0x0): first defined here

collect2.exe: error: ld returned 1 exit status

exit status 1
fehler beim kompilieren für das board arduino nano.

dieser bericht wäre detaillierter, wenn die option
"ausführliche ausgabe während der kompilierung"
in datei -> voreinstellungen aktiviert wäre.

bei mir werkelt ein pca9685 .
das ist die beste lösung.
und jetzt kennst du auch einen der gründe mehr.


quote
da ich nicht tief genug in der materie stecke um mich die timer ran zu wagen
wer nicht wagt, der nicht gewinnt.


Arduino Forum > International > Deutsch (Moderator: uwefed) > 2 Libaries mit dem selben Timer


arduino

Comments

Popular posts from this blog

DHT11 Time out error using v0.4.1library

Sketch upload fails with Java error (___REMOVE___/bin/avrdude)!

Arduino Uno + KTY81/210 temperature sensor