Hallo, wenn ich das zählende Timerregister TCNT1 eines ATTiny setzen will wäre es schön, nicht im hex Format schreiben zu müssen. Schreiben in Register - http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Schreiben_in_Register Kann man das komplette Register auch statt PORTA = 0x03 mit PORTA = 3 schreiben, oder mit einer uint8_t Variable wie PORTA = variable_1? Über Tipps und Infos wäre ich sehr dankbar. Gruß Markus
Geht. Ox gibt nur an das die folgende zahl in hex geschrieben ist. Kannst auch einfach portd = 200 schreiben
Ich geb' das manchmal auch direkt binär an. Der "Microsoft Calculator Plus" den ich wenn ich mich recht erinnere hier http://www.microsoft.com/en-us/download/details.aspx?id=21622" heruntergeladen habe rechnet dir das bequem ineinander um. Bei binärer Schreibweise mit acht Stellen siehst du damit sofort welchen Registern du was antust.
mgolbs schrieb: > Kann man das komplette Register auch statt PORTA = 0x03 mit PORTA = 3 > schreiben, oder mit einer uint8_t Variable wie PORTA = variable_1? Ähh, Sorry aber bevor ich so was frage, probiere ich es einfach aus!
Hallo, vielen Dank für die Information. Dann sollte auch die Variable in uint8_t funktionieren? Gruß und Dank Markus
Wenn du solche Fragen stellst, solltest du zuerst einmal ein Buch über C aufschlagen. Was Zahlenliterale und Variablen sind wird idR. auf den ersten Seiten erklärt. Du kannst nicht nach Tutorials programmieren, das wird nur schief gehen.
Wenn die Frage mgolbs schrieb: > Dann sollte auch die Variable in > uint8_t funktionieren? richtig verstehe: Ich sehe was die Wirkung angeht keinen Unterschied zwischen: A) uint8_t MyVar = 3; PORTA = MyVar; und B) PORTA = 3;
In C können ganze Zahlen generell in folgenden Formaten angegeben werden:
1 | i = 48; |
2 | i = 0x30; |
3 | i = '0'; |
4 | i = 060; |
5 | i = 0b110000; |
mgolbs schrieb: > vielen Dank für die Information. Dann sollte auch die Variable in > uint8_t funktionieren? Ja. Was läßt dich vermuten, daß das nicht geht? Peter Dannegger schrieb: > In C können ganze Zahlen generell in folgenden Formaten angegeben > werden: > i = 48; > i = 0x30; > i = '0'; > i = 060; > i = 0b110000; Die letzte Zeile geht allerdings nicht "in C generell", sondern ist eine gcc-spezifische Erweiterung. Und das dritte gibt eigentlich keine Zahl, sondern ein Zeichen an.
Hallo, danke für die vielen Hinweise. Ich stelle solche Fragen lieber doch, auch wenn man durch probieren, ..., sicher so manches "teilweise" herausfinden kann. Eine Lösung soll zuverlässig sein, und nicht in einem bestimmten Fall mit viel Restunsicherheit funktionieren. Es ist einfach eine Bestätigung von vermuteten Zusammenhängen durch Experten. Bestimmt wird es sicher so manchen weiteren Anfänger geben, oder Leute die nicht jeden Monat C programmieren, .., der beim googeln auf Foreneinträge stößt, die an sich primitiv sind und trotzdem hilfreich sind. Vielen Dank und Gruß Markus
mgolbs schrieb: > eine Bestätigung von vermuteten Zusammenhängen Eigentlich gibt es da so gut wie keinen Zusammenhang. Eine Zuweisung hat eine linke Seite und eine rechte Seite. Auf der rechten Seite des '=' steht im allgmeinen Fall ein Ausdruck. Dieser Ausdruck wird ausgewertet und das, was auch immer dann da raus kommt wird der linken Seite zugewiesen. Um die Zuweisung durchführen zu können, wird unter Umständen noch der Datentyp des Ergebnisses der rechten Seite auf den Datentyp der linken Seite angepasst. Aber das wars dann auch schon. Mehr Zusammenhang gibt es nicht. Das warum es dir hier ging, sind eigentlich nur verschiedene Schreibweisen. Je nachdem, in welchem Zusammenhang man operiert, kann die eine oder andere Schreibweise vernünftiger als eine andere Schreibweise sein. Aber im Grunde sind es einfach nur unterschieddliche Schreibweisen, die letzten Endes ein Bitmuster beschreiben, mit dem im µC operiert wird. Dein µC weiß nichts von Dezimalzahlen oder Hexadezimalzahlen. Der manipuliert nur Bitmuster nach vorgegebenen Regeln.
:
Bearbeitet durch User
Hermann E. schrieb: > Der "Microsoft Calculator Plus" den ich wenn ich mich recht erinnere > hier http://www.microsoft.com/en-us/download/details.aspx?id=21622" > heruntergeladen habe rechnet dir das bequem ineinander um. Und was bringt der MCP bei Registerwertberechnung für Vorteile gegenüber den eingebauten Fähigkeiten des Compilers?
1 | if (contains(answer, "Kann man") && ( forum == GCC ) ) { |
2 | printf ("C Buch"); |
3 | }
|
Warum wird denn nie geantwortet "Kauf Dir ein Elektronik-Buch", "Kauf Dir ein PHP-Buch" ?
Was soll denn der Käse mit Schleife? Ist ja schlimmer als Quatsch mit Soße... Im OP ist von Schleifenkonstrukt grad garnix zu sehen!
Moin, bildchen schrieb: > Warum wird denn nie geantwortet "Kauf Dir ein Elektronik-Buch", "Kauf > Dir ein PHP-Buch" ? Weil die Frage: "wieviel Strom fließt denn über meinen 100Ohm Widerstand, wenn ich 5V drauf gebe?" sehr selten gestellt wird. Auf diesem Niveau befindet sich nämlich die Frage des TE. Grüße,
Vergessen, bei meinem Vorpost zu schreiben. nein, das ist nicht verwerflich diese Grundlagen nicht zu wissen. Allerdings hilft einem dabei ein gutes Buch viel besser, als in einem Forum zu fragen, da ein Buch auch Fragen beantwortet (zumindest bei einem guten Buch) die man sich sonst evtl gar nicht gestellt hätte. Grüße
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.