Loading...
  Show Posts
Pages: 1 2 [3] 4 5 ... 13
31  International / Deutsch / Re: Timer / Counter on: July 30, 2012, 10:41:06 am
Hallo Madvision,
schau mal hier, wenn  du genaueres über Timer und Counter wissen willst:

http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Die_Timer_und_Z%C3%A4hler_des_AVR
http://www.mikrocontroller.net/articles/AVR-Tutorial:_Timer
http://www.rn-wissen.de/index.php/Timer/Counter_%28Avr%29
http://www.mikrocontroller.net/articles/AVR-Tutorial:_Uhr

Natürlich geht es auch ohne das ganze Wissen über Timer und Counter, wenn du den Vorschlag von mkl0815 befolgst.
Aber willst du nicht mehr wissen? mkl0815 weiß bestimmt auch mehr, als er dir hier verrät!  smiley-wink

Gruß
Wolfgang
32  International / Deutsch / Re: Fritiertes Silikon? on: July 30, 2012, 10:27:22 am
Hallo,
bei dieser Überschrift hatte ich ja schon mit dem schlimmsten gerechnet. smiley-wink War wohl im Englischen "fried silicon"?

engl.: silicon -> deutsch: Silizium
engl.: silicone -> deutsch: das Zeug u.a. für Brustimplantate
engl.: to fry -> deutsch: braten, brutzeln, frittieren

Ich konnte mir diese Anmerkung nicht verkneifen. Aber ich arbeite noch daran, das Bild aus meinem Kopf zu bekommen. Ist nicht bös' gemeint!
Vielleicht gibts ja trotz der Überschrift von anderen ein paar hilfreiche Tipps für die Fehlersuche smiley-wink


Gruß
Wolfgang

33  International / Deutsch / Re: Doofe Frage: String to Integer on: June 03, 2012, 03:51:51 am
Code:
char test[]="   12345";   // Ein Text mit einer Zahl drin
char test2[80] = "77";    // In Test2 könnten dynamisch noch längere Texte gespeichert werden.
int i = atoi(test);   //  i = 12345 Die Zahl selbst
i = atoi(test2);      // i = 77
Wenn ich das richtig verstanden habe, sucht arduinosfish eine Umwandlung eines Strings der Arduino-Stringklasse in einen Integer und nicht die Umwandlung eines char-Arrays in einen Integer. Daher nochmal mein vorheriger Verweis auf die toInt()-Methode der String-Klasse.

Wenn er natürlich die Strings ganz wegwirft, ist das char-Array sicherlich ressourcen-sparender, aber eine String-Klasse ist in der Anwendung (meistens) deutlich komfortabler (z.B. Strings mit "=" zuweisen, statt mit strcpy() kopieren, mit "+" oder "+=" zwei Strings verbinden, statt mit strcat(), mit "==" oder "!=" auf Gleichheit testen, statt mit strcmp(), mit "<" oder oder "<" alphabetisch vergleichen, usw.).

[Edit]: Entschuldigung, ich sehe gerade, dass sich der Beitrag von michael_x an harding und nicht an arduinofish gerichtet hat und für dessen Frage sicherlich hilfreich ist.

Schönen Tag noch.
Wolfgang
34  International / Deutsch / Re: char Frage on: June 02, 2012, 02:53:23 pm
In C/C++ ist keine direkte Zuweisung einer Zeichenkette (= char-Array) an ein anderes char-Array erlaubt.

Dazu kann man stattdessen
Code:
char Str1[15];
strcpy (Str1, "arduinoarduino");   // Vorsicht! Keiner und nichts überprüft die Größe des Ziels!!!
nehmen.

Und mit Strings der Klasse "String" funktioniert die Zuweisung mit dem Gleichheitszeichen, weil der Zuweisungsoperator "=' für diese Klasse entsprechend überladen ist.
35  International / Deutsch / Re: Doofe Frage: String to Integer on: June 02, 2012, 08:50:35 am
Die Klasse "String" kennt die Methode "toInt". Liefert einen long-Wert zurück (auch wenn sie toInt heißt). Ruft intern atol() auf um sich auf den internen char-Puffer der String-Klasse zu stürzen.
Es lohnt sich, bei Bedarf mal in die Datei WString.h bzw. WString.cpp (irgendwo tief verborgen unterhalb des Arduino-Verzeichnisses) zu schauen. Da kann man so manches entdecken. smiley-wink

Edit: Das Thema hatten wir schon mal. Siehe auch Reply #9 in diesem Thread:
http://arduino.cc/forum/index.php/topic,95230.msg716081.html#msg716081
Da gibt's auch einen Programm-Schnipsel bezüglich der Anwendung von toInt().

Viel Erfolg
Wolfgang
36  International / Deutsch / Re: Mega 2560 + Strom sparen? on: May 31, 2012, 01:40:50 pm
Hat keiner ne Idee:)?
Doch, ich hätte da was anzubieten:

1. Die Fehlermeldungen resultieren daher, dass BODS und BODSE nicht in der controllertyp-spezifischen Header-Datei für den 2560 definiert sind. Es handelt sich dabei um Bit-Nummern in einem speziellen Register des Controllers.

2. Das dürfte daran liegen, dass die Betriebsart "BOD Disable" beim ATMega 2560 nicht unterstützt wird (wohl aber beim 328P). Jedenfalls habe ich im Datenbuch für den 2560 nichts dergleichen gefunden.

3. Folglich dürfte Uwe mit seiner Vermutung richtig liegen, dass die Library nicht für den 2560 geeignet ist, weil der "nicht alles kann", was der 328P kann.

4. Könnte man als Tüftler versuchen, die Library so anzupassen, dass die beim 2560 nicht unterstützten Betriebsarten aus dem Programmcode herausgeworfen werden (und den Rest behalten). Das erfordert aber ganz sicher auch ein fleißiges Studium des Datenbuchs, um den Code der Library überhaupt zu verstehen.

5. Frage ich mich, ob es auf einem ATMega-Board Sinn macht, den eigentlichen Controller auf möglichst geringe Stromaufnahme zu trimmen, während die sonstigen Chips auf dem Board (z.B. Controller für USB<->RS232-Wandlung, Power-LED, usw.) von alledem nichts wissen.

Gruß
Wolfgang


37  International / Deutsch / Re: Einsteigerfrage Example "Blink" on: May 17, 2012, 09:24:13 am
Also ich würde da nicht pauschal von "Linux" reden,
unter Ubuntu 12.04 (64-bit) blinkt dein Ursprungssketch nämlich munter vor sich hin ...
Diese Version ist ja auch ziemlich neu. Mag sein, dass hier irgendwie eine andere/neuere/schönere/bessere Version der Libraries/Compiler/binutils installiert wird. Darin liegt ja das Problem wohl generell.

Gruß
Wolfgang
38  International / Deutsch / Re: Einsteigerfrage Example "Blink" on: May 16, 2012, 12:29:47 pm
In Windows.

Könnte also daran liegen, dass mx55 SuSE-Linux verwendet und dieses Problem nur bei der Linux-Compiler/Library-Version (und da eventuell auch nur bei Arduino 1.0) auftritt.
39  International / Deutsch / Re: Einsteigerfrage Example "Blink" on: May 16, 2012, 12:21:55 pm
Ich meine, ich hätte mal gehört, dass es unter Linux Probleme mit der delay()-Funktion geben kann (abhängig von der Compiler-Version und der Version der Libraries). Allerdings treten die nicht auf, wenn zusätzlicher Code zum Blink-Sketch dazugepackt wird.

Siehe auch: http://www.shredzone.de/cilla/page/344/arduino-auf-fedora-15-einrichten.html

@Ketchup: Hast du den ersten Blink-Sketch unter Windows oder unter einem Linux ausprobiert?

Wolfgang
40  International / Deutsch / Re: Linux auf ATMega 1284p laufen lassen on: April 07, 2012, 07:27:54 am
Dafür kannst du im Sommer Ski bzw Snowboard fahren. Hat doch alles was für sich...
Geil, so eine Skihalle, nicht wahr? Ich denke immer an die Stromkosten, wenn ich an dem Ding bei 30 Grad im Schatten vorbeifahre. smiley-wink
41  International / Deutsch / Re: Linux auf ATMega 1284p laufen lassen on: April 07, 2012, 06:55:27 am
Du bekommst die C'T immer früher. Ich muß bis nach Ostern warten. 
Dafür wohne ich auch nicht in Südtirol, wohin andere eine lange Urlaubsreise machen müssen. smiley-wink
Wolfgang
42  International / Deutsch / Linux auf ATMega 1284p laufen lassen on: April 07, 2012, 05:48:06 am
Hallo zusammen,

habe gerade die neueste Ausgabe der Zeitschrift c't im Briefkasten vorgefunden. Darin wird kurz über ein Projekt berichtet, bei dem jemand Linux 2.6.34 auf einem ATMega1284p bootet und es ist ein Link zu der Projektseite angegeben.
http://www.heise.de/ct/12/09/links/048.shtml
Ich hab' mich ja schon gefragt, ob das ein verspäteter Aprilscherz ist...

Das ganze funktioniert wohl über einen selbstgeschriebenen ARM-Emulator für den ATMega. Ist also keinesfalls eine native ATMega-Version von Linux! Es wird ein 30-pin SIMM Memory Modul zur RAM-Erweiterung benutzt und eine SD-Karte. Bauanleitung ist auch vorhanden.

Doch bevor jetzt die allgemeine Euphorie über das machbare ausbricht, sollte man sich doch mal die Geschwindigkeit des ganzen ansehen (im Abschnitt "How fast is it?") und intensiv darüber nachdenken, was sinnvoll ist und was nicht.
Kann natürlich cool sein, zu sagen: "Ich hab Linux auf meinem Arduino gebootet!" smiley-wink

Ganz anders beurteile ich einen weiteren dreiseitigen Artikel in der gleichen Ausgabe der c't, in dem beschrieben wird, wie man Arduino-Programme mit dem kostenlos erhältlichen AVR Studio 5.1 entwickeln und debuggen kann. Da stehe ich voll hinter.

Gruß
Wolfgang
43  International / Deutsch / Re: Stößt man bei der Arduino-Programmiersprache an die Grenzen? on: March 19, 2012, 12:50:02 pm
Das Multitasking geht? Das sieht erstmal ziemlich kompliziert aus, wie verhält sich das in der Praxis?

Die Unterstützung von Multitasking ist sicherlich gegeben. Prinzipiell wird so etwas ja durch das Betriebssystem zur Verfügung gestellt. Und so etwas hat der Arduino ja nicht.

Wenn man die Multitasking-Fähigkeiten benötigt, muss man entweder die von MaFu angesprochenen Bibilotheken verwenden oder etwas selbst programmieren. Was aber je nach Aufgabestellung durchaus möglich ist. Z.B. kann man mit Interrupts arbeiten, und dadurch eine Art Multitasking nachbilden:

Man kann durch bestimmte Ereignisse (Änderung von Eingangssignalen, Eintreffen von Zeichen über die serielle Schnittstelle, Erreichen von Zählerständen im Controller, Ablauf von Zeitgebern, usw.) den normalen Ablauf des Programms in der Endlostschleife in der Funktion loop() unterbrechen und den zum Ereignis passenden Programmcode ausführen (quasi anderer Task). Stichwort: ISR/Interrupt Service Routine. Wenn der Code dann abgeabeitet ist, wird wieder in loop() zurückgesprungen und dort weiter gemacht. Wobei natürlich gewisse Randbedingungen zu berücksichtigen sind.

Um das Ganze zu verstehen, sollte/muss man allerdings ein wenig suchen und lesen. Aber da hilft Tante Google sicherlich, etwas zu finden (Stichwort: AVR, ISR, interrupt, programming): hat gerade versuchsweise 67500 Ergebnisse geliefert. Aber auch bei Linux oder Windows muss man sich ja erst einmal schlau machen, wenn man Multitasking verstehen will.

Aber das muss man sich ja nicht von heute auf morgen aneignen. Macht auf jeden Fall Spaß, sich damit zu befassen. Finde ich.

Gruß
Wolfgang
44  International / Deutsch / Re: String zu Int on: March 06, 2012, 08:54:51 am
Hallo,
ich kann's im Augenblick nicht ausprobieren, aber vielleicht geht es so:

Code:
char puffer[50];   // genügend gross
String s = "101";

// Angaben für Version 0022, Version 1.0 sieht ein wenig anders aus
// wie der Name sagt...
s.toCharArray(puffer, sizeof puffer);

int i = atoi(puffer);
Serial.println(i);

// oder mit toInt() vielleicht einfacher so...

// toInt() anwenden auf eine Instanz eines String-Objektes
long l = s.toInt();    // liefert einen long-Wert zurück (trotz des Namens!)
Serial.println(l);

Neugierige schauen in WString.h / WString.cpp nach smiley-wink

@mkl0815: toInt() greift übrigens direkt auf den internen Puffer des Objektes zu und ruft damit lediglich atol() auf.

Wolfgang
45  International / Deutsch / Re: VB2010.NET und Arduino on: February 27, 2012, 08:32:05 am
Hallo Levi23,

der Nachfolger vom MSComm32.ocx sollte doch ab .NET 2.0 (oder VS2005) das SerialPort-Control sein, was die alten OCXse ablöst.

In dem nachfolgenden Link

http://msmvps.com/blogs/coad/archive/2005/03/23/SerialPort-_2800_RS_2D00_232-Serial-COM-Port_2900_-in-C_2300_-.NET.aspx

wird die prinzipielle Anwendung von SerialPort zur seriellen Kommunikation anhand eines Terminalprogramms gezeigt. SerialPort lässt sich definitiv unter VS2010 verwenden! Das Terminalprogramm ist zwar in C# geschrieben, aber die Umsetzung der grundlegenden Funktionen von C# nach VB sollte dank .NET kein allzugroßes Problem sein. Ansonsten könnte dir dieser Konverter etwas unter die Arme greifen (auch wenn er nicht optimal ist):

http://www.developerfusion.com/tools/convert/csharp-to-vb/

Ich habe das Programm (in C# so wie es ist) bei mir mit VS2010 kompiliert und verwende es als Ersatz für den Serial-Monitor der Arduino-IDE.

Viel Erfolg
Wolfgang
Pages: 1 2 [3] 4 5 ... 13