Hi ich kann bisher nur Assembler und wollt mich jetzt mal C widmen drum eine wohl dumme Frage: Die Bezeichnung 0xFF z.Bsp ist doh cfür eine hex Zahl, aber wie binde ich binäre und dezimale Zahlen ein, ohne lang umrechnen zu müssen???? Vielen Dank mfg Christian
Versteh nicht ganz wie du das meinst...Also HEX Zahlrn ist wie du geschrieben hast klar. Z.B: int i = 0xff; Dezimalzahlen ist soweit auch klar: int i = 255; Binärzahlen werden meines Wissens nach "normalerweise" d.h. laut Ansi C gar nicht unterstützt aber sehr viele Compiler bieten eine Erweiterung an (z.B. tigcc mit 0b11111111). Ich weiss nichts wies mit dem avrgcc ist, probiers einfach mal mit 0b10101101 oder so aus! Falls nicht, hilf nur ein umständliches Makro (oder Funktion) wo sichs aber schon aus Performance gründen nicht auszahlt so eins zu machen, ausserdem wäre es schlecht zu bedienen: BIN(1,0,0,0,1,1,1,0) zb. Ich würde dir den Tip geben einfach Start, Ausführen, calc zu machen und einfach schnell umzurechnen, für konstante Werte. Aber bei I/O Ports kannst sonst sowieso auch sbi() und sbi() verwenden Niki
Genial - vielen Dank für die Antwort!!!!! Kannst du das mit sbi() noch etwas weiter ausführen????? Vielen lieben Dank mfg Christian
sbi(portd, 1) setzt z.B. bit eins in portd. ansonsten kannste aber auch recht schnell im kopf von binär nach hex umrechnen. hierbei ist ein binäres byte in 2 mal 4 bit zu zerlegen. diese kann man dann einzeln nach hex umrechnen. geht echt ganz gut, probier's mal. Jonas
Hi, ich verwende für Binärzahlen ein Headerfile mit Binärtabelle: #define b00000000 0 #define b00000001 1 #define b00000010 2 #define b00000011 3 ..... Bis dann, Ingo.
Hi vielen lieben Dank für eure Tipps!!!!! Das mit "sbi(portd, 1)" hab' in der Theorie bereits gewusst, allerdings funktioniert es bei mir nicht mit meinem Code Vision AVR Compiler - ich hab' in den Examples nach sowas gesucht, aber nix gefunden - ist für mich eh alles russich....... Vielleicht kennt sich jemand mit dem Code Vison einbisschen aus... mfg Christian
HI schau auf die Beitragszeit :-} Bin auch gerade schwer am C umsteigen. Also wenn man man sich mal über die ersten Russischhürden hinweggeschafft hat ist das einfach schweinsgeil/megasimpel/biszumnächstenproblem... In code vision geht folgendes: Die Ports sind alle komplett im zB 4433.h file hinterlegt einbinden mit #include <4433.h> Die Portbezeichnungen sind 1:1 mit den Registernamen komp. Setze bit #5 PORTB PORTB.5=1 ; Lösche POSTB.5=0; oder komplett PORTB=0b11001100; binär PORTB=0xFF; hex PORTB=127; dezimal POSTB=0125; octal Oder nobel #define PORTB.5 = Enable Enable=1; bit gesetzt Übergebe Daten von PortB an variabele WASS_LOS_AN_PORTB?=PINB Und versa: PORTB=Sosollssein Bsp warte auf BF flag beim LCD #define PINB.1 = BF while ( BF==1 ) {}; Fertig ( klasse was ? ) Zahlen mit komma ( punkt ) verlangen ein float uswusf......
Hi vielen lieben Dank für deine hilfreiche Antwort!!!! Woher weißt du das (url??) - ist ja nicht so, dass ich mir die Hilfe nicht angeschaut hätte, aber darauf binich nicht gekommen und in den examples werden immer immer geheimnissvolle headerdateien eingebunden, die ich nicht so richtig durchschaue (vgl Displayansteuerung mit 5 Befehlen.... - so richtig lernen kann manda nix?????) mfg Christian
Hallo ihr lieben Leute da draußen kann mir vielleicht jemand sagen, warum nix passiert, wenn ich folgendes in meinen AVR compiliert reinbrenne??? #include <90s2313.h> void main(void) { PORTD.2=1; PORTD.3=0; } Dank euch ganz herzlich!!! mfg PS: mein experiemtier board ist OK und mit 15 Leds an jedem port ausgestattet.....
Du musst das Datenrichtungsregister auf Ausgang schalten! DDRD.2=1; DDRD.3=1;
Na genial!! Vielen lieben Dank!!!!!! Langsam gefällt mir C, wenn der Compiler auch noch etwas viel motzt..... Viele liebe Grüße Christian
Jo prima. Binn gerade mit meinem Projekt an der 2k Grenze der free Version angelangt (Ich glaub ich muss die 90 $ investieren.) Hab das schon mal in Assembler geschrieben bin dann allerdings an recht komplexen Mathematik gescheitert. log exp tan und x^5 ( grusel ) Naja da hat C doch einiges zu bieten Einfach so reinklappern wies auf dem papier steht fertig ( das war wirklich ne 2 min Aktion wenn ich denke ich hätte das in Assembler machen müssen ) Zur Frage Quellen: Das AVR C-buch von Burkhard Mann ( die Beispiele sind eine Frechheit aber als Referenz echt gut ) Insbesonders gibt das einen guten Einblick welche Programmiertechnik resourcen sparend ist Gut zum nachschlagen wenn man merkwürdige Programmzeilen verstehen möchte Viel geklaut hab ich bei allen C AVR programmen die ich im Forum gefunden habe Und die Examples des Compilers sind gar nicht so schlecht. Und die Hilfe latürnich Ich muss Dir zustimmen beim LCD demo lernt man gar nichts 5 befehle das wars Tipp : wie ein prinf o. sprinf funktioniert ist allerdings der schlüssel zum verstehen der Ausgabe ob auf LCD oder UART und da gehts dann auch schon mit arrays und pointern los Da brauchts ein Buch. Da die lcd.lib nur funktioniert wenn man 7 ports in reihe übrig hat ( der 4433 kommt maximal auf 6 ) hab ich als erste Aufgabe mal ne neue library geschrieben Auf deinem 2313 dürftest du da auch probleme bekommen Aber immerhin 1 Woche später (xxx) Stunden LCD läuft mit allem schnickschnak Der ADC liefert brav seine Daten ab Die kommunikation zwischen PC und Gerät klappt auch schon in beide Richtungen Und die formel ist auch schon drin Phagsae
Hi Phagsae, vielleicht wäre es an der Zeit auf AVR-GCC umzusteigen :-) Da hast du keinerlei Beschränkungen, und alles ist kostenlos! Auf so Sachen wie eingebaute LCD-Library musst du dann zwar verzichten, aber wenn man sie selbergeschrieben hat, dann weiß man wenigstens was sie tut, wie sie es tut und warum sie etwas vielleicht nicht tut. MfG Andreas
yo! avr-gcc ist echt gut. und lcd libs gibts dafür glaub ich auch schon... nur halt nicht im "lieferumfang"
Hallo, Spezialisten! Ich bin ein echter Mikrocontroller Laie, muß aber für meine Schule (Berufsbegleitende HTL für Nachrichtentechnik) ein Programm für einen Frequenzzähler in C schreiben. Der Controller mit dem ich arbeiten muss ist der SC12 (80186er) http://www.bbs-winsen.de/GoBlack/ETechnik/sc12chip/ Kann mir vielleicht irgendjemand helfen????? Ich kenne mich echt gar nicht aus!!!!!
Die Seite scheint doch für den Einstieg gut geeignet zu sein! Fang halt mal an, wenn es Probleme gibt kannst du ja immer noch nachfragen, aber versuch es erst mal selber! MfG Andreas
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.