-
        

Ergebnis 1 bis 2 von 2

Thema: Float, Double to String, Display ATMega16 Belichtungstimer

  1. #1

    Float, Double to String, Display ATMega16 Belichtungstimer

    Anzeige

    Hallo ..
    Das also ist mein erster Beitrag ... zu meiner Person muss ich sagen, dass ich eher die Hardwareseite bevorzuge ... mich dennoch für die Programmierung und die Umsetzung von Ideen interessiere ... für meine Belichtungsanlage benötige ich nun einen Timer ... Dieser Timer sollte Zentelsekunden zählen (auch wenn´s nur Spielerrei ist ...) ... also ich habe dass Programm für einen ATMega 16 der mit 8 MHz läuft ausgelegt ... Zu meiner Entwicklungsumgebung muss ich sagen, dass es sich um AVR - Studio handelt ... Programmiersprache C

    Nun ein paar Fragen ...

    1. Ich benutze einen Timer, der nach 0.1 Sekunden ein Interrupt auslöst ... dieses Führt dazu, dass ein Zähler eine Variable herunter zählt ... ( also bis die eingestelle Belichtungsdauer verstrichen ist ... ) ... ich habe am AVR ein Display angeschloßen ... korrekt eingestellt und getestet ...

    Wie gebe ich nun die Werte auf dem Display aus ? Also z.B. den Wert 100.00 ... und so weiter ... ich zähle z.B. von 100.00 in 0.1 Schritten herunter ... bei 0 schaltet ein Tyristor durch ... ich habe es mit sprintf versucht ... hiermit sollte ein float-Wert in einen String umgewandelt werden ... sprich ...

    char Ergebins [100];
    int num=24;
    sprintf( Ergebnis, "%3.2f", num );

    Doch ein wird auf dem Display nur ein Fragezeichen ausgegeben ... dennoch steht auf dem Display nach den 100 Sekunden "Time over ..." wie gewollt ... nun habe ich gelesen, dass es am Compiler liegen mag ... hat jemand eine Lösung ... ?
    Bin absoluter Anfänger ... also bitte auf "flacher" Ebene ...

    2. Meine letzte Frage ... wie Frage ich beim AVR einzellne Pins ab? Also Dass DDR habe ich richtig eingestellt ...

    Anschließend kommt ja ..

    Pin = 0x01;

    für den ersten Pin ... aber kann ich auch direkt einen einzellnen abfragen ?

    Beispielsweise ...

    if (Pin = 0x01 = "High" .. ) oder so in der Art ... (ich weiß, dass das kein korrektes C ist ...)

    Vielen Vielen Dank für eure Hilfe ... Mit freundlichen Grüßen Timo

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.183
    http://www.mikrocontroller.net/artic...R-GCC-Tutorial
    www.roboternetz.de/wissen/index.php/Avr-gcc

    Zu deiner Ausgabe, überleg mal was du versuchst auszugeben, dein Display braucht ASCII-Zeichen, du wirst dein int erstmal umwandeln müssen, z.B. mit itoa. Deinen Text hast du ja schon als ASCII gespeichert, drum wird der auch richtig angezeigt.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •