Show Posts
Pages: [1]
1  International / Deutsch / Re: 240x40 Array per Ethernet an PC übertragen? on: February 04, 2013, 06:35:38 am
Könnte mir jemand ein beispiel schreiben wie ich z.b. ein 1D Array mit sagen wir mal 3 Integer Werten im Ganzen per TCP oder UDP versenden kann?

Komme durch probieren nicht weiter.....

MfG
2  International / Deutsch / Re: 240x40 Array per Ethernet an PC übertragen? on: February 01, 2013, 05:08:08 am
Hallo Uwe,

ein Arduino Due hätte ich auch vorliegen!

Wie kann man dort am leichtesten ein Array dieser Größe übertragen?

Vielen Dank!
3  International / Deutsch / Re: 240x40 Array per Ethernet an PC übertragen? on: January 31, 2013, 04:32:30 pm
Hi Mario,

ob TCP oder UDP ist mir egal.

1) Hierbei handelt es sich um Integer Werte
2) Bei den Integer Werten handelt es sich um Bildpixel, die zeitversetzt generiert werden
3) Ein selbstgeschriebenes Programm verarbeitet die Daten und erzeugt aus dem Array ein Bild
4) WizNet5100

Jetzt kommt wahrscheinlich die Frage warum man nicht einfach immer nur einen sendet. Das kommt nicht in Frage, weil das in Sachem Zeit nicht effizient ist!

Wenn ich das richtig verstanden habe, reicht der RAM des Mega nicht aus, um so ein großes Array im ganzen zu verschicken?

Sicher geht das. Muss es denn UDP sein, oder darf auch TCP verwendet werden? TCP würde das Übertragen der Daten in mehreren Paketen erleichtern, weil sich der TCP-Stack um die Flusskontrolle kümmert.
Dazu noch folgende Fragen:

1) Welchen Datentyp hat das Array (byte, int, float, long ...)??
2) Selbst bei 8 bit (Byte) wären 240x40Bytes schon 9960 Bytes und damit mehr als in den RAM des Mega2560 passt (der hat nur 8K SRAM) Woher stammen also die Daten? Wenn die zeitversetzt generiert werden, ist das wichtig für die Übertragung (Stichwort Timerout)
3) Wer verarbeitet die Daten auf der PC-Seite? Ein selbst geschriebenes Programm oder ein vorgegebenes. Davon hängt ab wie man die Datenübetragung gestalten muss, ggf. gibt es ja schon ein vorgegebenes Protokoll
4) Welches Ethernet-Shield hast Du? WizNet5100 Chip oder ENC26J80? Auch das hat Einfluss auf Dein Programm, vor allem wenn mehrere Pakete übertragen werden müssen.

Mario.

4  International / Deutsch / 240x40 Array per Ethernet an PC übertragen? on: January 31, 2013, 12:54:43 pm
Hallo Forum,

ich habe ein Arduino Mega 2560 und ein Ethernet Shield. Ich würde gerne wissen, ob man ein Array mit einer Größe von 240 Zeilen und 40 Spalten per Ethernet an den PC übertragen kann?

Ich habe schon zum Anfang ein Programm geschrieben das einen einfachen String mit dem Befehl UDP.Write an den PC sendet. Das klappt soweit!

Jetzt würde ich gerne ein ganzes Array übertragen. Ist das möglich und wenn ja wie?

Vielen Dank, MfG
5  International / Deutsch / Re: Frage: Direkte Port Manipulation on: January 23, 2013, 04:26:49 am
Danke für die tolle Hilfe. Leider ist mein Mega 2560 definitiv zu langsam!

Jetzt überlege ich das Arduino Due mit 84 MHz zu kaufen.
Gibt es hier auch Quellen für die "direkte Port Manipulation" bzw. kann ich das obere Programm leicht umschreiben, um es auf dem Due auszuführen?

MfG
6  International / Deutsch / Re: Frage: Direkte Port Manipulation on: January 22, 2013, 10:49:08 am
Das hört sich perfekt an, danke! Werde es morgen mal testen....

Ich würds bei Pin 52 und 36 lassen, da sparst Du die Bitschieberei.
Code:
// Pin 52 = Port B Bit 1
// Pin 36 = Port C Bit 1

void setup()
{
  // Setzt Pin 52 als INPUT
  DDRB = DDRB & B11111101;

  // Setzt Pin 36 als OUTPUT
  DDRC = DDRC | B00000010;
}

void loop()
{
  // Lese Pin 52 und Schreibe den Wert nach Pin 36
  PORTC = (PORTC & B11111101) | (PINB & B00000010);
}

Jetzt zum Hintergrund:

Ich habe als Input ein Taktsignal, das ca. 1,5 MHz schnell ist. Jetzt wollte ich schauen ob mein Arduino Board schnell genug ist dieses Signal zu verarbeiten. Sprich Taktsignal lesen und auf einen anderen Pin schreiben. Den Pin dann mit einem Oszilloskop betrachten und schauen, ob ich da auch 1,5 MHz erhalten.
7  International / Deutsch / Re: Frage: Direkte Port Manipulation on: January 22, 2013, 09:29:00 am
ich will folgendes programm mit direkter port manupilation umsetzen:

Code:
int testeingang=29;
int testausgang = 22;

void setup(){
pinmode(testeingang,input);
pinmode(testausgang,output);
}

void loop(){
digitalwrite(testausgang,digitalread(testeingang);

Wäre für jede hilfe sehr dankbar :-]
8  International / Deutsch / Re: Frage: Direkte Port Manipulation on: January 22, 2013, 07:54:32 am
Ich bekomme es nicht hin! Muss mindestens 1.5 MHz schnell sein.

Habe nun den Input auf Pin 29 = PA7 und Output auf 22 = PA0.

Mein Code:

Code:
void setup(){
DDRA &= ~(1<<PA7);
DDRA|=(1<<PA0);
}

void loop(){
while(1){
PINA=(PINA & (1<< PA7));
}
}

Was ist falsch?]
9  International / Deutsch / Frage: Direkte Port Manipulation on: January 21, 2013, 11:40:38 am
Hallo Forum,

DigitalRead() und DigitalWrite() sind mir zu langsam und habe nach Recherche einige interessante Seiten zur "direkten Port Manipulation" gefunden!

Ich habe ein Arduino Mega 2560 und würde gerne Pin 52 = PC1 (INPUT) lesen und den digitalen Zustand dieses Pins auf Pin 36 = PC1 (OUTPUT) schreiben.

Mit welchen Befehlen geht das lesen des Pins 52 und das schreiben des Zustands auf Pin 36?
Kann mir da jemand helfen, wie der Programmcode aussieht? Vielen Dank!

Mfg
10  International / Deutsch / Digitales Signal - Frequenz im MHz Bereich ermitteln on: January 16, 2013, 02:51:54 pm
Hallo Forum,

Ich benutze ein Arduino Mega 2560 und möchte folgendes Programm schreiben:

Ich habe ein digitales Input Signal an PIN 29, von dem ich gerne die Frequenz ermitteln möchte. Das Oszilloskop zeigt eine Frequnz von ca. 1,5 MHz an. Ich würde gerne nachvollziehen, ob das Arduino Board schnell genug ist und die gleiche Frequenz heraus bekommt!

Wie könnte ein mögliches Programm aussehen?

Vielen Dank!

Mfg
Pages: [1]