-
+ Antworten
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 17

Thema: C Neuling - erste Frage

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.07.2008
    Ort
    NRW
    Alter
    42
    Beiträge
    169

    Frage C Neuling - erste Frage

    Hallo zusammen,

    ich will von Bascom auf C umsteigen. Mein erstes Hindernis ist folgendes:

    In Bascom gibts ein Terminal, wenn ich im Simulator irgend etwas mit "Print" ausgebe, erscheint es in eben diesem Terminal.
    Ich möchte für C nun das AVR Studio nutzen, Bücher sind da und viele Tutorials ebenfalls zum "abarbeiten".

    Nur, wie kann ich im AVR Studio ein Terminal Fenster öffnen, damit mir z.B. auch die "printf" Anweisungen angezeigt werden
    beim simulieren ?

    Danke euch.

    Gruß
    Blue72

  2. #2
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    24
    Beiträge
    3.508
    Blog-Einträge
    9
    Hi,

    ich glaube AVR Studio hat sowas nicht. Aber ich würde dir eh empfehlen lieber ein eigenständiges Terminalprogramm wie TeraTerm zu installieren.
    Alternativ hat auch Windows ein Terminalprogramm. Das nennt sich dann HyperTerm.
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.07.2008
    Ort
    NRW
    Alter
    42
    Beiträge
    169
    Danke Dir,

    hast Du auch eine idee wie ich das ins AVR Studio einbinden könnte ? Noch bin ich für alles offen, es muss auch nicht das AVR Studio sein.
    Wenn es einen anderen guten Compiler gibt, würde ich auch diesen nehmen.

  4. #4
    Erfahrener Benutzer Roboter Experte Avatar von ePyx
    Registriert seit
    14.05.2008
    Ort
    Falkensee
    Beiträge
    700
    Für AVRStudio 5 gibt es bei den Extensions einen Terminal-Emulator. Keine Ahnung ob der gut oder schlecht ist. Ansonsten Hterm, putty oder terraterm nutzen. Funktionen wie printf kann man auch nutzen. Einmal google bemühen liefert das hier.
    Grüße,
    Daniel

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.801
    QUOTE=ePyx;547804

    > Funktionen wie printf kann man auch nutzen. Einmal google bemühen liefert das hier.

    Was aber keine transparente Verwendung von printf darstellt. Wird printf verwendet, landet die Ausgabe damit immer noch im Nirvana.

    Für printf-Verwendung ist schon was mehr notwendig.

    In dem Link werden spezielle Ausgabefunktionen wie lcd_printf verwendet; wiklich kein Kunststück.
    Disclaimer: none. Sue me.

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.07.2008
    Ort
    NRW
    Alter
    42
    Beiträge
    169
    Also mir geht es in erster Linie darum, Code wie diesen hier:

    Code:
    // kap002/aufgabe001.c
    #include <stdio.h>
    
    int Main(void) {
       printf('Ei-Pod\n');
       return 0
    }
    einfach auch optisch anzuzeigen, da ich bei C wirklich bei absolut 0 anfange.

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.801
    Zum Lernen von C und auch von anderen Programmiersprachen eignet sich ein PC wesentlich besser als ein kleiner, resourcenschwacher C ohne Betrienssystem und Standardumgebung.

    Man muss ja nich gleich mehrere Baustellen gleichzeitig aufmachen...

    Obiges Programm kannst du zb auf einem PC, und nach Behebung der mindestens 5 Tippfehler, übersetzen mit

    $ gcc aufgabe001.c -o aufgabe001.exe

    und das Programm dann ausführen mit

    $ aufgabe001.exe

    Was du also mindestens brauchst ist ein Compiler, und GCC leistet da sehr gute Dienste. Vorteil ist, daß gcc überall gleich tickt, und ein avr-gcc sich fast genauso verhält wie ein gcc — mit dem Unterschied, daß er keinen Code für den PC erzeugt, sondern eben für einen AVR.

    Eine einfache Möglichkeit, sich gcc zu installieren, ist etwa mittels Code::Blocks. Das ist zwar eine komplette IDE, aber ob du die IDE samt Debugger, Editor etc. einsetzt oder gcc per Makefile oder wie auch immer verwendest, bleibt natürlich dir überlassen.

    http://www.codeblocks.org/

    Falls dir Code::Blocks zu klotzig ist, geht's hier weiter:

    http://www.mingw.org/
    Disclaimer: none. Sue me.

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.07.2008
    Ort
    NRW
    Alter
    42
    Beiträge
    169
    Hallo SprinterSB,

    vielen Dank für Deine ausführliche Hilfe, da werd ich doch gleich mal ein bisschen stöbern.

    Tjaha, den Code habe ich aus dem Buch, da gibt es Aufgaben und Listings. Ich habe versehentlich die Aufgabe kopiert anstelle des Listings

  9. #9
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Zitat Zitat von Blue72 Beitrag anzeigen
    Also mir geht es in erster Linie darum, Code wie diesen hier:
    Code:
       printf('Ei-Pod\n');
    einfach auch optisch anzuzeigen, da ich bei C wirklich bei absolut 0 anfange.
    Diese Komfortfunktion von Bascom gibt's in C so nicht.
    Was Du machen kannst, um z.B. die Ausgabe von printf im AVR-Studio4 zu überprüfen, ist einen Data Breakpoint auf das UDR Deiner Wahl zu setzen und zwar auf die Basis-Adresse.
    Bei einem ATMega16 ist das für das einzige UART die Adresse 0x0C, der Breakpoint muss also lauten:
    Break when: Location is accessed
    Location: IO@0x2C
    Per F5 kannst Du durch die einzelnen ausgegebenen Zeichen durchgehen.
    Unter AVR-Studio4 gibt's auch noch unter Debug-->AVR Simulator Options-->Stimuli and logging die Möglichkeit Änderungen auf einem bestimmten Port zu registrieren, diese anzuzeigen und in ein File zu loggen.
    Wenn Du nun stdout umleiten würdest: Die_Nutzung_von_sprintf_und_printf und dort die Zeichenausgabefunktion änderst, d.h. statt das UART auf den Port ausgibst,
    Code:
    int uart_putchar( char c, FILE *stream )
    {
      PORTA = c;
      return 0;
    }
    dann siehst Du das Ausgegebene (bei Output-->To screen) und kannst es auch in eine Datei schreiben, zwar nur in Dezimal ASCII, aber immerhin.

    Nachtrag:
    Gerade bemerkt, AVR-Studio4 merkt sich das Logging nicht in den Projekteinstellungen, das muss also nach jedem Start des Studios neu eingetragen werden.
    Und schreib' Anführungszeichen statt Hochkomma, sonst wird das nix:
    Code:
    printf('Ei-Pod\n');
    Geändert von MagicWSmoke (01.05.2012 um 12:41 Uhr)

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.07.2008
    Ort
    NRW
    Alter
    42
    Beiträge
    169
    Hallo MWS,

    Deine Antworten habe ich schon in einem anderen Forum stark vermisst
    Danke dafür. Ich werde das jetzt alles mal ausprobieren womit ich am besten klarkomme.

    Die Sache mit den Anführungszeichen war eine Aufgabe aus dem Lehrbuch, da habe ich anstelle des Lsitings
    die Aufgabe herauskopiert

    Gruß
    Blue72

+ Antworten
Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Frage von einem Neuling zu seinem Projekt...
    Von ticia im Forum Mechanik
    Antworten: 11
    Letzter Beitrag: 12.05.2011, 09:46
  2. Pro Bot 128 Neuling bräuchte Hilfe für erste Schritte.
    Von muntz im Forum Sonstige Roboter- und artverwandte Modelle
    Antworten: 4
    Letzter Beitrag: 03.12.2009, 16:32
  3. Neuling mit Frage!
    Von Basalam im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 14
    Letzter Beitrag: 27.04.2008, 05:14
  4. Neuling Frage.
    Von -:edik:- im Forum Elektronik
    Antworten: 3
    Letzter Beitrag: 11.08.2006, 20:12
  5. C-Control ist da, die erste Frage
    Von marcel im Forum Controller- und Roboterboards von Conrad.de
    Antworten: 8
    Letzter Beitrag: 09.12.2003, 19:25

Berechtigungen

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