- 3D-Druck Einstieg und Tipps         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 15 von 15

Thema: AVR und Umstieg von Assembler auf C Programmierung

  1. #11
    Benutzer Stammmitglied
    Registriert seit
    20.08.2011
    Beiträge
    61
    Anzeige

    E-Bike
    Hallo Oberallgeier,
    meinen Dank für Deinen zurecht gerückten Code.
    Hab ihn ins Studio4 rüber kopiert und ausgedruckt. Das muß ich jetzt erst mal verarbeiten.
    Die vielen Zeichen die hier ihre Bedeutung haben, gab es natürlich in Assembler nicht.
    Auch z.B. DDRB = 0b00000000 wurden mit 0xFF erledigt...oder geht das in C nicht?
    Klar waren hier 2 Zeilen notwendig...wie
    ldi akku,0xFF ;alle Bits in r16 = 1
    out DDRB,Akku ;Datenrichtung = Output

    Aber ich habs mir nun vorgenommen und muß da durch.

    Das Wetter ist im Norden besch....

    Viele Grüße

    Rolf

    - - - Aktualisiert - - -

    Sorry, wollte nur sehen, ob ich das hinbekomme!

    Code:
      DDRA  = 0b00000000;   // Alle Pins auf Eingang
      PORTA = 0b11100101;   // Pinn 0, 2 sowie fünf bis sieben mit Pullup
                            //
      DDRB  = 0b11111111;   // Alle Pins auf Ausgang
      PORTB = 0b00001111;   // Pinn 0-3 high => LEDs an, 4-7 auf low => LEDs aus
                            //
      DDRC  = 0b00111111;   // Pinn 0-5 auf Ausgang, 2 Eingänge

  2. #12
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.685
    Zitat Zitat von hegewald Beitrag anzeigen
    ... Die vielen Zeichen ... gab es natürlich in Assembler nicht.
    Auch z.B. DDRB = 0b00000000 wurden mit 0xFF erledigt...oder geht das in C nicht?
    Hallo Rolf, natürlich gabs in Assembler nicht die vielen kryptischen Zeichen. Dem Assembler wird auch nicht nachgesagt dass er von seinen Autoren im reichlich eingetrübten Zustand (auf Deutsch heisst das "Suff") erstellt worden wäre. Manche sagen das den Jungs Kernighan & Ritchie aber nach . . .

    Ok, man kann in C natürlich statt
    DDRB = 0b00000000; auch
    DDRB = 0xFF;
    schreiben - also in hex. Es geht aber auch einfach
    DDRB = 255;
    eben dezimal. Und wenn Du Deinen Code weniger leserlich willst, dann schreibste
    DDRB = 0377;
    also oktal *ggg* - erkennbar an der führenden Null. Und wenns noch hyroglyphischer werden soll, ginge (mal zur Abwechslung - und wegen ASCII -) für die Ziffer 116 dezimal auch ein
    DDRB = 't';
    also das ASCII-Zeichen. MEINE Vorliebe ist >>bei Portdefinitionen<< die binäre Darstellung "DDRC = 0b00111111;" - erkennbar an dem Vorspann "0b"- da sehe ich nämlich sofort, welche Pinne Eingang und welche Ausgang sind - das ist bei der gleichWERTigen Darstellung 0x3F für meine Augen nicht der Fall. Wenn ich dagegen, z.B. beim Empfang eines UART-Befehls (ähnlich EIA232) einen bestimmten ASCII-Wert abfrage, dann schreibe ich z.B. if ( eingabe == 't' ) ... - das liest sich eben besser als if ( eingabe == 116 ) ... Wie gesagt, irgendwann waren irgendwo bei C vermutlichvielleicht doch ein paar fl.oz.-chen Alk im Spiel, oder gar ein Gallönchen.

    Bravo zum Codefenstertest!




    [OT]Wetter . . . heute lag ich nach dem mittäglichen Kaffee mehr als eine Stunde auf meiner Südterrasse. Im Schatten rund 0°C, im Sonnenschein auf der Terrasse bei blauem Himmel . . . wars einfach warm - weil dazu auch windstill.[/OT]
    Ciao sagt der JoeamBerg

  3. #13
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    C sollte man eigentlich anhand eines Buches oder eines der verfügbaren Tutorials auf einem PC lernen. Da liefert einem der Rechner alles, was man braucht: die Tastatur als Input, den Bildschirm als Output sowie Tools, wie einen Debugger, ohne Ende. Unter Linux sind die erforderlichen Programme sowieso frei und unter Windows gibt es Visual Studio Express ebenfalls kostenlos. Da gibt es dann online Syntax-Checks, Single Step, die komplette Sicht auf alle Variablen und eine Menge andere Hilfe. Wenn man dann mit der Sprache einigermaßen klar kommt, kann man auf (irgend)einen µC umsteigen.

    Und man sollte garnicht erst versuchen, die Sichtweise des Assenblerprogrammierers auf den Rechner in C nachzuvollziehen. Und sich von Prozessorregistern, Carryflag oder Stackpointer zu lösen, gelingt einem leichter auf einem PC. Danach spielt es dann auch keine Rolle mehr, ob man für AVR, PIC, ARM oder X86 programmiert.

    Hallo Rolf, natürlich gabs in Assembler nicht die vielen kryptischen Zeichen
    Aber selbstverständlich gibt es die, eher noch mehr. Und natürlich kann jeder Assembler Zahlen in jeder nur denkbaren Schreibweise verarbeiten, von binär bis oktal und natürlich auch als ASCII Zeichen. Dafür schleppt er aber das alte Fortran-Lochkartenformat mit sich rum, und es hat ziemlich lange gedauert, bis Labels mit mehr als 8 Zeichen zulässig waren. Und moderne Assembler benutzen sogar den C-Präprozessor weils einfach praktisch ist.

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  4. #14
    Benutzer Stammmitglied
    Registriert seit
    20.08.2011
    Beiträge
    61
    danke für Eure Antworten!

    Mit meinen AVR Studio4 aus dem Jahre 2011 werde ich nichts. Hatte erst mal versucht das Fenster zu öffnen,
    um ein neues Projekt zu installieren. Umgestellt von Assembler auf Cxxx...Projektname eingegeben,
    den Mega8 ausgesucht und ok. Dann den Code von Oberallgeier im Editor und nochmal abgespeichert.
    Jetzt wie gewohnt auf "BUILD" aber es tut sich wie sonst gewohnt (kurz laufender Balken) gar nichts.
    Google sagt mir, ich müsse bei Studio4 vorab das WINAVR installieren.
    Ich habe das Studio4 noch nicht runter geschmissen.

    Oder gleich das Studio5 nehmen?

    Grüße

    Rolf

  5. #15
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.685
    ... Mit meinen AVR Studio4 aus dem Jahre 2011 werde ich nichts ... ich müsse bei Studio4 vorab das WINAVR installieren ... gleich das Studio5 ...
    Hallo Rolf.

    Wie weiter oben geschrieben, war MIR bei den Versionen 5 und - wohl besser - 6 zuviel Overhead. Für meine Arbeiten reicht allemal das 4er und für mich ist dies ein typischer Fall wo weniger (Overhead) gleich mehr (einfacher, übersichtlicher, schneller) ist. Andererseits nutzen andere selbst für kleinere Projekte die 6er Version, die gleich den Compiler mitbringt.

    Ich habe auf meinem aktuellen Rechner, Win7pro64 zuerst den Compiler installiert - WinAVR-20100110 - wenn ich mich recht entsinne. Danach das AVRStudio4. Von der letzten Installation auf WinXP hatte ich diese ?notwendige? Reihenfolge - erst Compiler, dann Studio4 - noch im Kopf.

    Danach ging alles "ganz normal". Wenn Du magst dann versuchs mal so. Zuerst Dein AVRStudio löschen (Systemsteuerung, Programme löschen), Neustart, WinAVR-20100110 holen

    http://sourceforge.net/projects/winavr/files/

    dazu dann gleich das Studio 4; hier gibts direkte Links zu den verschiedenen Versionen, neuen und alten:
    http://www.mikrocontroller.net/artic...inks_Installer
    Wenn ich Dich richtig verstehe, liegt bei Dir der Installationsfile dafür aber schon irgendwo auf Deinem Rechner. Bei der Version 4-18 gibts wohl mehrere Servicepacks, die sind im 4-19 vermutlich schon drin.

    Nun zuerst den Compiler installieren (WinAVR-20100110-install.exe). Ich mach das wohl (immer? notwendig?) mit dem Trick mit der "Rechte Maustaste" und "Als Administrator ausführen".

    Danach das Studio 4 installieren - gleiche Tricks wie oben.

    Danach sollte "es" eigentlich laufen . . . (ohne Gewähr, ohne Haftung wofür auch immer ...)
    Ciao sagt der JoeamBerg

Seite 2 von 2 ErsteErste 12

Ähnliche Themen

  1. Umstieg von ATMEGA 16 auf 32 Bit AVR
    Von Nomis_Simon im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 2
    Letzter Beitrag: 09.12.2006, 18:42
  2. Umstieg von Bascom auf uisp + avr-gcc
    Von neurix im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 11.11.2005, 13:27
  3. Umstieg von Basic -> Assembler
    Von kaisobczak im Forum AVR Hardwarethemen
    Antworten: 10
    Letzter Beitrag: 14.04.2005, 09:17
  4. Umstieg von 8051 auf AVR
    Von postmann im Forum AVR Hardwarethemen
    Antworten: 2
    Letzter Beitrag: 16.02.2005, 09:11
  5. Umstieg von Basic auf C2
    Von Matthias im Forum C-Control II
    Antworten: 13
    Letzter Beitrag: 04.01.2004, 10:27

Berechtigungen

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

Labornetzteil AliExpress