- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 4 von 4

Thema: ASURO einfache Additionsrechnung

  1. #1

    ASURO einfache Additionsrechnung

    Anzeige

    E-Bike
    Hallo Gemeinde,

    haben in der Schule die Aufgabe bekommen mit dem Asuro eine Addition durchzuführen. Die Aufgabenbeschreibung lautet: Über Hyperterminal eine Zahl einzugeben und sie dann mit einer fest programmierten Zahl zu Addieren. Dabei soll zunächst die eingegebene Zahl in ein integer umgewandelt werden, damit die Rechenopperation durchgeführt werden kann. Danach soll das Ergebniss wieder in ein ASCI bzw. Char zurückgewandelt werden und an Hyperterminal ausgegeben werden.

    Habe schon ein Programm geschrieben, kann mir jedoch nicht erklären warum ich keine vernünftigen Ergebnisse bekomme??

    Vielleicht kann jemand von euch weiterhelfen. Würde mich sehr freuen.



    Quellcode:
    Klicke auf die Grafik für eine größere Ansicht

Name:	Asuro bild.PNG
Hits:	14
Größe:	39,7 KB
ID:	22569

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    36
    Beiträge
    1.225
    Keine Ahnung woher du dein atoi hast, aber normalerweise ist der Integer der Rückgabewert von atoi.
    Laut der Dokumentation der avr-libc erwartet atoi nur einen Parameter, und das ist ein Pointer auf einen C-String, also eine Zeichenkette die am Ende mit einem Nullbyte abgeschlossen wird. SerRead gibt dir übrigens (nach meinem Wissensstand) KEINEN nullterminierten String zurück!

    Ich fasse zusammen: Nichtexistente Funktion, kein C-String. Ach ja, das ganze könnte selbst dann nicht funktionieren, wenn es ein solches atoi gäbe. Du übergibst der Funktion nämlich den Wert von summand, damit kann sie aber nichts Anfangen. Sollte sie die Daten an der Speicherstelle ablegen, an der summand liegt, müsstest du einen Zeiger auf summand übergeben.

    mfG
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

  3. #3
    Vielen dank für die schnelle Antwort.

    Was genau muss denn jetzt im Programm geändert werden. Muss ehrlich sagen, das ich die Sache mit den Pointern nicht so recht verstanden habe.


    #include "asuro.h"
    #include <stdio.h>



    int main(void)
    {




    Init();




    unsigned char eingabe[3];


    int summand;
    int summe;
    unsigned char ausgabe[3];

    //Benutzereingabe
    SerWrite("Taschenrechner ",15);
    SerRead(eingabe,3,0);

    Sleep(255);Sleep(255);Sleep(255);
    Sleep(255);


    //Wandeln des Eingegebenen Wertes in ein Integer
    atoi(eingabe,summand,20);


    //Rechnung mit den Integern
    summe=(summand+100);


    //Zurückwandeln des Ergebnisses in ASCII
    itoa(summe,ausgabe,3);
    SerWrite(ausgabe,3);





    while(1);
    return 0;
    }

  4. #4
    EDIT:


    Hat sich erledigt habe das Problem gefunden. Habe bei der Umsetzung des Programmes in die falsche Richtung gedacht. Trotzdem danke für den Hinweis mit dem Pointer, wäre da so selber nie drauf gekommen. Bei bedarf kann ich das Programm noch Posten.

    MFG

    Jörg

Ähnliche Themen

  1. [ERLEDIGT] Einfache Uhr
    Von Tux12Fun im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 04.04.2011, 00:21
  2. einfache Uhr
    Von Boscha im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 12
    Letzter Beitrag: 22.10.2008, 15:56
  3. einfache servoansteuerung
    Von rocketman123 im Forum Motoren
    Antworten: 5
    Letzter Beitrag: 27.11.2007, 13:46
  4. einfache sensorschaltung
    Von r.schuchart im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 28.09.2007, 15:06
  5. Einfache Elektronikfrage
    Von maze2k im Forum Elektronik
    Antworten: 3
    Letzter Beitrag: 29.05.2006, 18:39

Berechtigungen

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

Solar Speicher und Akkus Tests