Show Posts
Pages: [1] 2 3 4
1  International / Deutsch / Re: While Schleife wird nicht ausgeführt on: November 25, 2013, 07:15:37 am
Danke, dass habe ich verstanden!

Ich habe das mit den Indizes bisher etwas lasch gehandhabt. Solche Aufräumarbeiten machte ich bei Pc-Programmierung immer am Schluss! Da spielte das keine so große Rolle, bzw. gab es immer eine sprechende Fehlermeldung!

Ich werde es entsprechend anpassen! Das muss leider bis Sontag warten!
2  International / Deutsch / Re: While Schleife wird nicht ausgeführt on: November 25, 2013, 04:02:50 am
Die Serial Befehle habe ich nur zum Debuggen reingeschrieben, weil ich wissen wollte, wo die Abarbeitung hängt. Nachdem ich sie drinne hatte, funktionierte der Funktionstest einwandfrei! Die  LEDs gingen mit LEDON an und mit LEDOFF wieder aus!

LEDON und LEDOFF schreiben in eine 8-Bit Variable, welche LED an oder aus sein soll. Beim Anzeigen brauche ich nur diese Variable in den Port kopieren , fertig!

Was ich aber nicht verstehe ist, dass die while-Schleife nur aufgerufen wird, wenn die serial Befehle drinne stehen! Dann geht sowohl die Ausgabe Auf dem Monitor, als auch die LED Anzeige! Nehme ich die serial Befehle aus der while Schleife raus, zeigen die LEDs nichts mehr an?

Wird mein schöner Code vielleicht wegoptimiert? Vielleicht hat Arduino ja erkannt, dass ich viel besser den Hof fegen soll, als vor dem Computer zu sitzen! Ist Arduino so schlau?
3  International / Deutsch / While Schleife wird nicht ausgeführt on: November 24, 2013, 04:12:31 pm
Ich habe folgenden Code in den Setup Teil geschrieben, damit soll bei Start ein Selbsttest aller LEDs realisiert werden.
Code:
   

    // Selbsttest
 
    uint16_t MySekunden;
    MySekunden = 0;

    while(MySekunden < 512) {
     
    Serial.print("while");
    Serial.println(MySekunden);
    if (MySekunden < 5) {
      LEDON(MySekunden);
    }
   
    if (MySekunden < 10) {
      LEDOFF(MySekunden-5);
    }
   _delay_ms(200);
   _delay_ms(200);
   _delay_ms(200);
   _delay_ms(200);
   _delay_ms(200);
   MySekunden ++;
   
    }  //while (MySekunden < 512)

Wenn ich die Serial - Befehle rausnehme, geht er nicht mehr in die while Schleife, kann mir das bitte jemand erklären?
4  International / Deutsch / Re: Kurioses Verhalten beim Schleifendurchlauf on: November 19, 2013, 11:07:14 am
Herzlichen Dank guntherb! Das ist es !

Ich habe höchstens 32768 mal draufgeguckt, aber der Fehler war viel zu offensichtlich!

Ich werde die Abbruchbedingung ändern, dann passt es!
5  International / Deutsch / Re: Kurioses Verhalten beim Schleifendurchlauf on: November 17, 2013, 04:03:02 pm
Udo, Du hast auch Recht! Ich habe diesen Fehler behoben, leider war das aber nicht die Lösung! Ich habe eher einen Interrupt im Verdacht, obwohl ich es eben nicht erklären kann!
6  International / Deutsch / Re: Kurioses Verhaltein beim Schleifenfurchlauf on: November 17, 2013, 01:27:31 pm
Uwe, Du hast völlig recht, dass erklärt das aber das kuriose Verhalten nicht! Trotzdem Danke!
7  International / Deutsch / Kurioses Verhalten beim Schleifendurchlauf on: November 17, 2013, 01:06:14 pm
Ich habe unter Zuhilfenahme verschiedener Programmteile aus anderen Bibliotheken unten angehangenes Programm geschrieben. Die Kommunikation mit der angeschlossenen 7-Segment Anzeige funktioniert,  gleiches gilt für die Kommunikation mit dem DS1621 und dem PCF8591.

in der Loop (kommt ganz unten im Quelltext) habe ich versucht eine Dreieckspannung über den PCF auszugeben. Da passiert nun das kuriose Verhalten. Der erste Teil, das Hochzählen von j von 0 bis 255 funktioniert einwandfrei! Der anschließende Code Block wir jedoch völlig übergangen! Das sieht man sowohl an der Zählvariable als auch an angeschlossener LED. Die Spannung springt nachdem sie 255 in der ersten for-Schleife erreicht hat auf 0 zurück und zählt wieder nach oben! Der Teil mit dem Herabzählen wird nicht abgearbeitet.
Im Übrigen habe ich schonmal den ersten Teil auskommentiert, dann funktioniert das Herabzählen (Nach 0 springt j wieder auf 255). Wer kann mir das erklären?
8  International / Deutsch / Re: Weitere und ernste Probleme mit Fahrtenregler on: December 21, 2012, 12:27:42 pm
Ich habe heute früh von Arduino auf C++ umgeschwenkt. Mit dem AVR Studio 5.1 und dem AVR USB Programmer hat es prima hingehauen. Ich habe zwei Interrupts programmiert, der eine zählt einen Counter hoch und spielt PWM, der andere überwacht PIN4 und gibt Signale bei HIGH und LOW. Mit diesem messe ich die Impulslänge des Fernsteuersignals. Dieses verwurschte ich zu einer Sollgeschwindigkeit. Aus der Sollgeschwindigkeit mache ich dann eine Istgeschwindigkeit, die dem Signal mit leichter Trägheit folgt.

Dieses Geschwindigkeitssignal übergebe ich dann meiner Software PWM. Klappt wunderbar!
9  International / Deutsch / Re: Aus Zeitmangel: Arduino und reichhaltiges Elektroniksortiment abzugeben on: December 21, 2012, 12:21:45 pm
Sollen wir jetzt bieten? Und der der den höchsten Preis abgibt kriegt es?

Willst Du das noch vor dem Weltuntergang durchziehen?

Sag mal!
10  International / Deutsch / Re: PulseIn im Fahrtenregler on: December 20, 2012, 12:56:19 pm
Danke für diese ausführliche Erklärung. Ich wusste schon, dass PulseIn den Programmablauf stört. Das es aber auch wartet, bevor etwas passiert, war mir neu. Damit ist das für mich völlig ungeeignet. Das bedeutet nämlich schon im Normalfall, dass die Schleife erst alle 20 ms weiterläuft. Wenn dann noch ein Puls nicht ordnungsgemäß erkannt wird, läuft die PWM mit 40 oder 60 ms alten Werten. Angenommen das Auto fährt 45 km/h, dann bewegt sich die Karre in 60 ms schon 750 mm weit. Zu weit für das Fähren in einer Halle.

Ich werde also auf den Einsatz von PulseIn verzichten und das Gänze mit Externen Interrupts regeln.
11  International / Deutsch / Re: PulseIn im Fahrtenregler on: December 20, 2012, 07:35:46 am
Wer kann helfen, was macht PulseIn?
12  International / Deutsch / Re: analogWrite auf Attiny on: December 20, 2012, 07:34:28 am
Zu Deinen Fragen, erni-berni:

Er blinkt völlig chaotisch, wobei kein Dimmen erkennbar ist, das heißt, die LED leuchtet immer mit voller Kraft!

Keine Fehlermeldungen!

Alle möglichen Pinbelegungen ausprobiert. Kein Erfolg!

Ja, andere Programme laufen. Alles getestet, selbst das Einlesen des Empfängers hat schon geklappt.

Ja, auch der Blinksketch läuft mit der erwarteten Frequenz, Fehler in der Blinkfrequenz kleiner 10 % . Hat mich übrigens bewogen, die eingelesene Pulslänge automatisch zu korrigieren. Wobei automatisch heißt, dass er immer nach der aktuell größten und kleinsten Impulsdauer sucht, und diese dann als 1 ms bzw. als 2 ms interpretiert.

Ich werde Deinen Sketch mal ausprobieren.

Danke für Deine Bemühungen!

13  International / Deutsch / PulseIn im Fahrtenregler on: December 20, 2012, 02:47:04 am
Für mein Fahrtenreglerprojekt nutze ich zu Erzeugung des PWM-Signal eine interruptgesteuerte PWM. Diese funktioniert recht gut. Das Problem ist, dass in dem Augenblick, wenn ich im Code die pulseIn Methode verwende, um die Signale aus dem Fernsteuerempfänger zu lesen, die Software-PWM nicht mehr funktioniert! Woran liegt das? Was macht pulseIn im Hintergrund mit meinen Interrupteinstellungen? (Läuft als CTC mit 1 als Vorteiler und 100 als TopWert, OCR0A sozusagen.)
14  International / Deutsch / analogWrite auf Attiny on: December 20, 2012, 02:40:23 am
Für meinen Fahrtenregler verwende ich einen Attiny45, einfach weil, der kleiner ist als der Atmega328 und theoretisch ausreichend Ressourcen zur Verfügung stellt. Ich bekomme aber kein analogWrite realisiert. Hat Eurerseits jemand Erfahrung damit? Ganz konkret geht es um die Frage, welche Pinnummer muss ich in der Arduino-Software verwenden, um PB0 und PB1 (das sind die beiden PWM-fähigen Pins am Attiny) anzusprechen?
15  International / Deutsch / Re: Weitere und ernste Probleme mit Fahrtenregler on: December 20, 2012, 02:32:36 am
Herzlichen Dank für diesen Tipp. Das ist absolut richtig.

Wenn Ihr den Code anschaut, dann seht Ihr, dass selbst der fehlerhafte Code kein dauerhaftes Leuchten verursachen sollte! Im zweiten If Statement steht eindeutig: Warte 2000 Millisekunden! Und zwar, nachdem ich die Laterne durch Abschalten der Energieversorgung durch PORTB = 0b00000000 ausgemacht habe! Dieser Programmteil wird immer dann aufgerufen, wenn (!(PINB & 0b00010000)) WAHR ist, also an PB4 kein Signal anliegt. Da ich PB4 über einen Pulldown auf Gnd ziehe, sollte bei jedem Durchlauf die Beleuchtungseinrichtung 2 sec leuchten und dann 2 sec eben nicht leuchten, oder?
Pages: [1] 2 3 4