Pages: [1]   Go Down
Author Topic: Library einbinden und integer umwandeln  (Read 265 times)
0 Members and 1 Guest are viewing this topic.
Bremen
Offline Offline
Newbie
*
Karma: 0
Posts: 28
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo lieber Arduino Gemeinde

ich möchte gerne mein AVR Net-io
http://www.pollin.de/shop/dt/MTQ5OTgxOTk-/Bausaetze_Module/Bausaetze/Bausatz_AVR_NET_IO.htm
mit eine SPS steuern.

Dazu habe ich nun das Projekt auf das Net-IO gespielt:
https://code.google.com/p/avr-netino/

Blink Beispiel funktioniert auch alles, allerdings komme ich mit der Netzwerk library nicht klar smiley-sad
Die webseite soll mit das Später so ausgeben:
10101010:1023:0655:0065:0006:1111 // Digitale ausgänge 8stk.:ADC1 (2byte):ADC2:ADC3:ADC4:Digitale eingänge

Nun bin ich auf die Ethernetlibrary gestoßen, die mit dem ENC28j60 auch gut arbeitet:
https://github.com/ntruchsess/arduino_uip

Leider bekomme ich diese nicht auf dem Net-io zum arbeiten, denke man muss da irgendwie die pinbelegung ändern softwareseitig. Evtl habt ihr da tipps wo man genau schauen muss.

Dann habe ich das Problem, dass die SPS probleme hat mit variable länge, daher soll der Arduino mir dann immer die gleiche anzahl senden

Problem: integer: 0-1023, dort müsste dann immer 0 vorweg stehen

Beispiel: int 0 = 0000 ; int 125 = 0125 ; int 25 : 0025
Wie realiere ich denn soetwas?
Logged

Germany S-H
Offline Offline
Edison Member
*
Karma: 117
Posts: 2435
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


Mit einem AVR Net-io scheinst Du für mich komplett im falschen Forum zu sein. 
Hier geht es um Arduino-Hardware, Arduino-Software und Arduino-kompatibles Zubehör zu vorstehendem.
Ein Board mit Atmega32 ist kein Arduino und ein AVR Net-IO Board ist auch kein Arduino.

Wenn Du das (und noch mehr), was Du mit dem AVR Net-io machen kannst, mit einem Arduino machen wolltest, dann würdest Du als Hardware benötigen:
- ein Arduino-kompatibles Board (z.B. UNO oder MEGA)
- ein Ethernet-Shield mit W5100
Logged

Bremen
Offline Offline
Newbie
*
Karma: 0
Posts: 28
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ich glaube, du verstehst mich falsch.

ich habe hier ein arduino uno, ein Ethernetshield Wiznet chip.

Nun habe ich noch ein ENc28j60 chip ethernetmodul mit einer anderen library. Funktioniert auch

Nun gibt es das netino projekt (Net-io programmieren über arduino ide)

dort bekomme ich aber die Ethernet library nicht eingebunden und bräuchte dabei hilfe, da das net-io auch einen enc28j60 chip hat.

außerdem benötige ich allgemein hilfe wie ich den analogwert mit den 0 vorweg hinbekomme
Logged

Germany S-H
Offline Offline
Edison Member
*
Karma: 117
Posts: 2435
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ich glaube, du verstehst mich falsch.
...
Nun gibt es das netino projekt (Net-io programmieren über arduino ide)

Ja, das glaube ich auch, dass ich es nicht vestanden habe.
Aber jetzt scheint es etwas klarer zu werden:

- Du hast einen Arduino mit Ethernet-Shield
- Du hast keine/kaum Ahnung von Arduino-Programmierung
- Du hast ein AVR Net-IO
- Du hast keine Ahnung von AVR Net-IO Programmierung
- Du hast Dateien von einem "netino projekt", mit dem man Net-IO über die Arduino-IDE programmieren kannst
- Und dieses "netino projekt" bekommst Du nicht zum Laufen

Ich weiß nicht, ob ich's jetzt verstanden habe, aber helfen kann ich Dir dabei nicht, soweit es nicht Arduino-Boards, -Shields oder -Software betrifft. Von AVR Net-IO habe ich keine Ahnung. Und in den gruseligen ENC28j60 Netzwerkchip möchte ich mich gar nicht einarbeiten, wo doch der W5100 des Ethernet-Shields viel komfortabler umd speichersparender zu programmieren ist.

außerdem benötige ich allgemein hilfe wie ich den analogwert mit den 0 vorweg hinbekomme

Ganzzahlen mit führenden Nullen formatierst Du am komfortabelsten mit "sprintf" bzw. mit der gegen Pufferüberläufe sicheren Funktion "snprintf": Beispielcode:
Code:
void setup() { 
  Serial.begin(9600);     
  int a0,a1,a2,a3,a4,a5; // integer-Variablen
  char line[41]; // String für 40 Zeichen plus Nullzeichen am Ende
  a0=analogRead(A0);
  a1=analogRead(A1);
  a2=analogRead(A2);
  a3=analogRead(A3);
  a4=analogRead(A4);
  a5=analogRead(A5);
  snprintf(line,sizeof(line),"%06d:%04d:%03d blabla %05d?%04d!%04d",a0,a1,a2,a3,a4,a5);
  Serial.println(line);
}

Die Funktionen sprintf bzw. snprintf arbeiten mit einem "Formatierungs-String", in dem Du festlegst, was für Variablen wie formatiert werden sollen. "%0" steht dabei für "formatiere mit führenden Nullen", die nächste(n) Ziffer(n) stehen für die zu formatierende Mindestbreite und das "d" in "%06d" steht für "Dezimalzahl".

Hinweis: Die Standard-Library bei der Arduino-Programmierung ist die "AVR libc", Dokumentation hier:
http://www.nongnu.org/avr-libc/user-manual/modules.html

Wenn Du nähere Erläuterungen zu den einzelnen Funktionen benötigst, kannst Du den Funktionsnamen leicht googeln und Dir die Verwendung in C- bzw. C++ Tutorials irgendwo im Internet ansehen, da fast alle Funktionen der AVR libc auch in anderen C-Standardlibraries enthalten sind.


Logged

Bremen
Offline Offline
Newbie
*
Karma: 0
Posts: 28
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Vielen Dank schonmal für die ausführlich erklärung =)

Also das net-io kann ich Programmieren mit der Arduino IDE
kann z.B. das Blink sketch raufspielen und dann "Blinkt" das Relais was dran angeschlossen ist.

Nun ist in dem Netino Projekt einer Ethercard Library enthalten. (ENC28j60 chip)
in den Beispielsketch änder ich die IP und mir werden im browser die Analogwerte angezeigt mit 5 sekunden refresh.

Nun habe ich aber wür mein arduino Uno einen ENC28j60 chip mit einer anderen Library (Siehe link im ersten post)
Dort sind quasi alle befehle intentisch zu der Original Ethernet library für das Wiznet shild.

Nun würde ich gerne die Library die mit meinem Arduino uno + enc28j60 arbeitet in das Netino einfügen.
leider laufen dann die pings in leere.

ich behaupte nun, dass die Pinbelegung angepasst weren muss

in welcher datei ist sowas immer interlegt z.B cs pin = 10
 dies wird bei dem netino projekt vielleicht ein anderer pin sein als 10 und daher läuft die library nicht auf dem net io
Logged

Pages: [1]   Go Up
Jump to: