INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Library-Konflikt beim Signalgenerator-Projekt
14.05.2021, 16:13 (Dieser Beitrag wurde zuletzt bearbeitet: 14.05.2021 17:14 von Bitklopfer.)
Beitrag #1
Library-Konflikt beim Signalgenerator-Projekt
Liebe Arduino Gemeinde
Bei meinem Signalgereator-Projekt mit dem AD9833 Modul und dem 4x4 Keypad habe ich vermutlich einen Library-Konflikt. Eingesetzte Bibliotheken sind: Keypad.h + AD9833.h. Beim Kompilieren/Hochladen erhalte ich keine Fehlermeldung!
Möglicherweise könnte auch der serielle Monitor eine Fehlerquelle sein?
Wenn ich jede Bibliothek einzeln teste, funktioniert der sketch.
Vielleicht kann jemand von euch mir in dieser Sache weiterhelfen.

Code:
/* Konflikt zwischen Keypad.h und AD9833.h */

#include <Keypad.h>       // Include the library

#include <AD9833.h>       // Include the library
#define FNC_PIN 2         // Can be any digital IO pin

long first = 0;
String Signaltype = "SINE_WAVE";    // Startup waveform of the module
String Hertz = "Hz";                // Startup Hertz of the module(Hz,kHz,MHz)
float moduleFrequency = 0.00;       // aktuelle Frequenz

char customKey;
const byte ROWS = 4;
const byte COLS = 4;

char keys[ROWS][COLS] = {
  {'1', '2', '3', 'A'},
  {'4', '5', '6', 'B'},
  {'7', '8', '9', 'C'},
  {'*', '0', '#', 'D'}
};

byte rowPins[ROWS] = {3, 4, 5, 6};    //R1,R2,R3,R4 - Pinbelegung Keypad 4x4
byte colPins[COLS] = {7, 8, 9, 10};   //C1,C2,C3,C4 - Pinbelegung Keypad 4x4
Keypad customKeypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS);
/* Pinbelegung des AD9833:
   DAT = (UNO/Nano) 11 / CLK = (UNO/Nano) 13 / FNC = (UNO/Nano) 2 (#define FNC_PIN 2)*/
AD9833 gen(FNC_PIN);        // Defaults to 25MHz internal reference frequency

void setup() {
  gen.Begin();
  /*  Signal type - SINE_WAVE, TRIANGLE_WAVE, SQUARE_WAVE, and HALF_SQUARE_WAVE */
  Serial.begin(9600);
  Serial.println("----- MENU ------------------------------------------------- ");
  Serial.print("  Tasten 0..9 "); Serial.print("\t"); Serial.println("Frequenzeingabe");
  Serial.print("  Taste # "); Serial.print("\t"); Serial.println("Ende Eingabe - Uebernahme in Speicher");
  Serial.print("  Taste * "); Serial.print("\t"); Serial.println("löschen der Eingabe - Zähler auf 0");
  Serial.print("  Taste A "); Serial.print("\t"); Serial.println("Signaltype SINE_WAVE ");
  Serial.print("  Taste B "); Serial.print("\t"); Serial.println("Signaltype TRIANGLE_WAVE ");
  Serial.print("  Taste C "); Serial.print("\t"); Serial.println("Signaltype SQUARE_WAVE ");
  Serial.print("  Taste D "); Serial.print("\t"); Serial.println("Anzeigen moduleFrequency + Signaltype ");
  Serial.println("-------------------------------------------------------------");
}

void loop() {
  gen.ApplySignal(TRIANGLE_WAVE, REG0, 4400);         // Hier nur zum Testen - später löschen !!!
  gen.EnableOutput(true);

  customKey = customKeypad.getKey();
  switch (customKey)
  {
    case '0' ... '9':
      first = first * 10 + (customKey - '0');
      Serial.println(first);
      break;

    case '#':
      Serial.println("Taste #  -  Ende Eingabe");
      moduleFrequency = first ;
      //--------------------------------------------------------------------
      if (moduleFrequency != 0 && moduleFrequency < 1000) {
        Hertz = "Hz";
        Serial.print (moduleFrequency); Serial.print ("  "); Serial.print (Hertz);
        Serial.print ("\t\t"); Serial.println (" Frequenz kleiner 1000");
      }
      if (moduleFrequency >= 1000 && moduleFrequency < 1000000) {
        Hertz = "kHz";
        moduleFrequency = moduleFrequency / 1000;
        Serial.print (moduleFrequency, 3); Serial.print ("  "); Serial.print (Hertz);
        Serial.print ("\t\t"); Serial.println (" Frequenz zwischen 1 kHz und 999,999 kHz");
      }
      if (moduleFrequency >= 1000000 && moduleFrequency <= 12000000) {
        Hertz = "MHz";
        moduleFrequency = moduleFrequency / 1000000;
        Serial.print (moduleFrequency, 3);  Serial.print ("  "); Serial.print (Hertz);
        Serial.print ("\t\t"); Serial.println (" Frequenz zwischen 1 MHz + 12 MHz");
      }
      if (moduleFrequency > 12000000 ) {
        //   Hertz = "MHz";
        Serial.print (moduleFrequency); Serial.print ("\t");
        Serial.println (" Frequenz zu hoch - maximal 12 MHz !!!");
        Serial.println (" \t\t Frequenz neu eingeben !!!");
        first = 0;
      }
      //--------------------------------------------------------------------
      break;

    case 'A':
      Serial.println("Taste A = SINE_WAVE");
      Signaltype = "SINE_WAVE";
      gen.ApplySignal(SINE_WAVE, REG0, moduleFrequency);
      break;

    case 'B':
      Serial.println("Taste B = TRIANGLE_WAVE");
      Signaltype = "TRIANGLE_WAVE";
      gen.ApplySignal(TRIANGLE_WAVE, REG0, moduleFrequency);
      break;

    case 'C':
      Serial.println("Taste C = SQUARE_WAVE");
      Signaltype = "SQUARE_WAVE";
      gen.ApplySignal(SQUARE_WAVE, REG0, moduleFrequency);
      break;

    case 'D':
      //   Serial.print("Taste D -  moduleFrequency =  ");
      Serial.print("moduleFrequency = "); Serial.print(moduleFrequency); Serial.print(" "); Serial.print(Hertz);
      Serial.print("\t"); Serial.println(Signaltype);
      break;

    case '*':
      Serial.println ("Taste * = clear  -  Zähler auf 0");
      first = 0;
      break;
  }
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.05.2021, 16:17 (Dieser Beitrag wurde zuletzt bearbeitet: 14.05.2021 17:15 von Bitklopfer.)
Beitrag #2
RE:Library-Konflikt beim Signalgenerator-Projekt
Und wie genau äußert sich der Konflikt ?
Was geht und was geht nicht ?
Und bitte Links der verwendeten Libraries posten.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.05.2021, 16:20 (Dieser Beitrag wurde zuletzt bearbeitet: 14.05.2021 17:15 von Bitklopfer.)
Beitrag #3
RE: Library-Konflikt beim Signalgenerator-Projekt
Wenn Du uns noch die Links zu Deinen Libs gibst, können wir evtl. rein schauen. Es gibt oft Libs mit gleichen Namen aber unterschiedlichen Aufbau.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.05.2021, 17:17
Beitrag #4
RE: Library-Konflikt beim Signalgenerator-Projekt
@TO ...vielleicht mal ein bischen auf die Rechtschreibung beim Threadtitel achten...das erleichtert den anderen das lesen...Undecided wobei ich beim verstehen weniger Probleme sehe...Angel
bk Moderator


An alle Neuankömmlinge hier, wenn ihr Code(Sketch) hier posten wollt dann liest euch bitte diese Anleitung durch.

Ich spreche fließend Schwäbisch, Deutsch das Notwendigste und für die Begriffsstutzigen erprobtes Tacheles mit direkten Hinweisen ohne Schnörkel...

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.05.2021, 11:25
Beitrag #5
RE: Library-Konflikt beim Signalgenerator-Projekt
(14.05.2021 16:17)hotsystems schrieb:  Und wie genau äußert sich der Konflikt ?
Was geht und was geht nicht ?
Und bitte Links der verwendeten Libraries posten.

Hallo Hotsystems
Die beiden Libs habe ich von arduinolibraries + GitHub heruntergeladen und ins IDE installiert.
https://www.arduinolibraries.info/libraries/keypad
https://github.com/Billwilliams1952/AD98...ry-Arduino
Fehlerbeschreibung:
Der AD9833 funktioniert eigentlich, Frequenz wird ausgegeben (1. Zeile im Loop).
Das Keypad ist aber tot, d.h. es reagiert auf keine Tasteneingabe und im seriellen Monitor wird nichts angezeigt, nicht einmal die Menu-Struktur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.05.2021, 12:41
Beitrag #6
RE: Library-Konflikt beim Signalgenerator-Projekt
(15.05.2021 11:25)tapsi schrieb:  Der AD9833 funktioniert eigentlich, Frequenz wird ausgegeben (1. Zeile im Loop).
Das Keypad ist aber tot, d.h. es reagiert auf keine Tasteneingabe und im seriellen Monitor wird nichts angezeigt, nicht einmal die Menu-Struktur.

Dann setze doch direkt hinter die erste Zeile eine serielle Ausgabe.
Wenn da nichts kommt, blockkiert die Zeile den Ablauf deines Sketches.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.05.2021, 12:08
Beitrag #7
RE: Library-Konflikt beim Signalgenerator-Projekt
(15.05.2021 12:41)hotsystems schrieb:  
(15.05.2021 11:25)tapsi schrieb:  Der AD9833 funktioniert eigentlich, Frequenz wird ausgegeben (1. Zeile im Loop).
Das Keypad ist aber tot, d.h. es reagiert auf keine Tasteneingabe und im seriellen Monitor wird nichts angezeigt, nicht einmal die Menu-Struktur.

Dann setze doch direkt hinter die erste Zeile eine serielle Ausgabe.
Wenn da nichts kommt, blockkiert die Zeile den Ablauf deines Sketches.

Hallo hotsystems
Habe das mit deinem Vorschlag probiert - funktioniert auch nicht!
Die serielle Ausgabe wird aber nicht blockiert (Serial.print-Anweisungen werden angezeit), es werden aber keine Tastatureingaben angenommen. Muss demnach mit der Lib zzu tun haben.
Ich versuche jetzt das Keypad ohne Lib im sketch zu implementieren, ev. an 1 analogen Pin nach: http://razibshahdat.blogspot.com/2018/05...ntrol.html
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Bitte Hilfe für einen Anfänger beim Hochladen Harry Bo 6 342 23.07.2021 04:48
Letzter Beitrag: Harry Bo
  Multiplexer TCA9548A Library Franz54 8 387 20.07.2021 04:55
Letzter Beitrag: N1d45
  SPI und I2C Library für ATtiny ? FrankHGW 10 688 15.06.2021 07:12
Letzter Beitrag: FrankHGW
  Projekt Triple-Handrad CNC Fridolein 2 653 24.04.2021 21:39
Letzter Beitrag: Fridolein
  Library von GitHub ? Steinspiel 18 1.543 12.04.2021 19:20
Letzter Beitrag: Steinspiel
  Projekt Geisterfalle Geisterjäger 9 1.141 09.04.2021 18:27
Letzter Beitrag: Geisterjäger
  Signaturfehler beim hochladen auf Nano 168 fingerpfeifer 9 1.234 02.04.2021 19:34
Letzter Beitrag: Chopp
  Signaturfehler beim hochladen auf Nano 168 fingerpfeifer 4 655 28.03.2021 18:47
Letzter Beitrag: fingerpfeifer
  PCM Sound Library für RC PKW RC_Trucker_WN 4 563 22.03.2021 21:22
Letzter Beitrag: RC_Trucker_WN
  Buzzer und IR-Fernbedienung beim mBot phg 1 543 13.03.2021 19:40
Letzter Beitrag: Tommy56

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste