Hallo. Immer wenn ich diesen Sketch auf meinen Arduino Uno hochladen will, erscheint mir eine Fehler Meldung beim Kompilieren : #define LED 8 byte segments[] = { B01111110, B00110000, B01101101, B01111001, B00110011, B01011011, B01011111, B01110000, B01111111, B01111011}; void setup() { pinMode (LED, OUTPUT); for (int i=0 ; i <=7; i++){ pinMode (i, OUTPUT); } } void loop(int h) { digitalWrite (LED, HIGH); PORTD = segments[h]; } oder hat vielleicht jemand Noch andere Tipps eine Siebensegmentanzeige einfach über den Arduino anzusteuern? Vg. mili
Habt gedult M. schrieb: > Immer wenn ich diesen Sketch auf meinen Arduino Uno hochladen will, > erscheint mir eine Fehler Meldung beim Kompilieren : > void loop(int h) Wundert mich nicht. Welchen Sinn soll der Unsinnscode denn überhaupt haben ?
Habt gedult M. schrieb: > void loop(int h) Hast du den int h auch im Funktionsprototypen der Loop Funktion definiert und übergibst du beim Aufruf von der Loop Funktion auch ein Wert für h? Wieso verwendest du teilweise die Arduino Portfunktionen und teilweise direkten Registerzugriff um den Port anzusteuern? Es währe natürlich einfacher dir zu helfen wenn wir wüssten was in der Fehlermeldung steht.
Christian M. schrieb: > Hast du den int h auch im Funktionsprototypen der Loop Funktion > definiert und übergibst du beim Aufruf von der Loop Funktion auch ein > Wert für h? Er hat überhaupt nichts programmiert sondern einen Sketch genommen (übernommen) und versucht ihn zu laden.
Arduinoquäler schrieb: > Er hat überhaupt nichts programmiert sondern einen > Sketch genommen (übernommen) und versucht ihn zu laden. Das vermute ich zwar auch aber mit diesen Stichwörtern und Google sollte er eine weile beschäftigt sein. Und es sollte eigentlich reichen um das Problem zu lösen.
:
Bearbeitet durch User
Christian M. schrieb: > sollte er eine weile beschäftigt sein. Diese kühne Annahme setzt vorraus dass er sich mit dem Suchen überhaupt beschäftigen wird .....
also ich habe ihn von dieser Seite : http://tronixstuff.com/2011/10/22/tutorial-arduino-port-manipulation/
Habt gedult M. schrieb: > also ich habe ihn von dieser Seite : > > http://tronixstuff.com/2011/10/22/tutorial-arduino-port-manipulation/ Wenn man nichtmal richtig abschreiben kann... tut es dann schon wirklich richtig weh. Und richtig schmerzen tut es dann... wenn derjenige noch mit der Nase reingedrückt wird, und reagiert nichtmal drauf. Echt...! Setz dich mit dem Thema programmieren auseinander. Egal ob C, C++, Basic oder dieser ArduinoQuark. Mit Zeilen zusammenschnippeln, das auch noch falsch, wirst du nicht weit kommen.
In der Arduino Welt kann man loop() kein Argument übergeben, das ist das, was wir anderen C Programmierer die Hauptschleife nennen. Du bastelst dir am besten eine Unterroutine, die das Schreiben aufs 7-Segment übernimmt. Das kann z.B. so aussehen:
1 | void Wr_7Seg(uint8_t number, uint8_t LEDState) { |
2 | PORTD = segments[number]; |
3 | if (LEDState) PORTD |= 0b10000000; |
4 | else PORT &= 0b01111111; |
5 | }
|
6 | |
7 | void loop(void) { |
8 | uint8_t n,state = 0; |
9 | for (n=0;n<10;n++) { |
10 | Wr_7Seg(n,state); |
11 | _delay_ms(500); |
12 | state = 1 - state; |
13 | }
|
14 | }
|
Ich kenne den Dialekt von Arduino nicht so, aber gültiges C sollte es sein.
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.