Go Down

Topic: Zählung von Impulsen (Read 4114 times) previous topic - next topic

uwefed

ja, aber IDE macht das auch und einfacher. Wieso möchtest Du AVR-Studio verwenden?

Was widersetzt sich Deinem Verständnis?

Grüße Uwe

kawa-racer

das liegt einfach daran, dass wir schon in der Schule mit AVR Studio und C arbeiten ... somit nochmal ne Programmiersprache raussuchen is net so mein Ding ^^...

uwefed

Wieso neue Programmiersprache?
IDE wird in C/C++ programmiert und für die arduinospezifischen bzw hardwarespezifischen Funktionen existieren Funktionen und Biblitheken.
Grüße Uwe

kawa-racer

hmm ... mich irritiert halt z.b. pinmode statt das man DDRD= 0xff (für Ausgänge) schreibt ^^...

uwefed

Funktioniert beides; IDE versteht alle Register direkt anzusprechen.
Es wird wenig gemacht da Arduino für nicht eingefleischte low lewel Programmierer mit profunden Kenntnissen der ATmega-Architektur bzw Innenleben gedacht ist. Es wird aber gemacht:
zB: http://www.arduino.cc/en/Reference/PortManipulation

Grüße Uwe

kawa-racer

ah ok :-)

was ich noch gern fragen will... wenn ich die interrupts bzw. timer einschalten will... kann ich das dann auch wie in AVR Studio machen also erkennt er die Zeilen wie EIKA; sei(); usw. ?
Und hab irgendwo gelesen, dass man die RX bzw. TX Pins nicht verändern soll ? Warum?

uwefed

#21
Feb 05, 2012, 12:43 am Last Edit: Feb 05, 2012, 12:45 am by uwefed Reason: 1
sei(); hab ich schon gesehen, EIKA; noch nie, aber ich glaube schon. Das IDE verwedet den offiziellen AVRGCC und deshalb kennt es alles.

Die TX-RX pins sind auf dem Arduino über 2 1kOhm Widerstände mit dem USB-Serial converter (ft232 für ältere Arduinos und einem Programmierten ATmega8U2bzw ATmega16U2 bei den Arduino UNO und MEGA2560)
Darum kann der Gebrauch dieser Pins zu Problemen mit der Verbindung zum PC oder Upload führen bzw wenn das TX Pin als Eingang verwendet werden sollte Fehlfunktionen auftreten.  
Wenn man weiß was man tut kann man sie ruhig verwenden. Zb werden sie Verwendet um ein Xbee oder Bluetooth-Modul anzuschließen. In diesem Fall verwendet man die USB-Verbindung zum PC nicht.  

Grüße Uwe

kawa-racer

hmm ok ... aber die Befehle aus dem AVRGCC ( DDRA usw.) werden nicht Blau hinterlegt sondern nur die Arduino fertigen Befehle (pinmode usw.)
oder?
Jedenfalls funktioniert das nicht bei mir ... :-)

Jedenfalls wirds jetzt langsam mit dem Programm ^^... werde die Tage mal ein es hier posten und dann können wir mal gucken was ich so alles falsch gemacht hab ;-)

Wegen den TX bzw. RX Pin.... kann man beim Verändern dieser das Board beschädigen?

uwefed

Farbig hinterlegt werden nur Schlüsselwörter die in den keywords.txt - Files der Bibiotheken im Verzeichnis arduinoxx/libraries/Name_Bibiothek/ bzw dem keywords.txt file in arduinoxx/lib/ für die Standart-Schlüsselwörter genannt sind.

Quote
Wegen den TX bzw. RX Pin.... kann man beim Verändern dieser das Board beschädigen?

Teoretisch ja wenn man die serielle Schnittstelle benutzt oder im Einschaltmoment und TX mit Masse oder 5V verbindet. Praktisch ist der ATmega aber überraschend robust.
Grüße Uwe


kawa-racer

Also quasi beim Hochladen eines Programmes über USB diesen Pin von Außen als Taster nutzt?
Aber so kann ich diesen ohne Probleme als Eingang bzw. Ausgang nutzen? Sorry für die Anfängerfragen... will mir aber das Board net zerstören...
will so lang wie möglich Spaß damit haben  ;-)


kawa-racer

@ Uwe ..

kannst du mir die map() funktion erklären ?
Ich versteh nicht ganz was man da eingeben muss.

bzw. was ich mit meinem Singal vom NE555 machen soll bzw. wie ich hier vorgehen muss um meine 10 LEDs anzusprechen

uwefed

Reicht das http://arduino.cc/en/Reference/Map ?
Im Moment bin ich zu müde es zu erklären.  morgen...
Grüße Uwe

kawa-racer

hihi... also dies hab ich schon durchgelesen... jedoch is mein Englisch net so der Hit...

hmm...

uwefed

map() mappt die Variable von den Ausgangswerten zu den Zielwerten um.

Ausgangsvariable = map(Eingangsvariable, in_min, in_max, out_min, out_max)
Die Eingangsvariable wird umgerechnet sodaß der Bereich zwischen in_min und in_max in den Bereich out_min und out_max gespielgelt wird.
Beispiel:
valPWM = map(valanalogin, 0, 1023, 0, 255);
Ein analoger Wert wird gelesen. Deser liegt zwischen 0 un 1203 und wird in den Ausgangswert 0 bis 255 umgerechnet um ihn über PWM auszugeben.

Grüße Uwe

kawa-racer

Ok .... dies würde ja bedeuten ich müsste mein Signal vom NE555 auf nen Analogeingang legen !?

Hmm irgendwie häng ich jetzt total beim Programm ... weiss weder wie ich jetzt die Impulse bzw. die Impulsdauer messen soll noch wie ich das dann an die LEDs übergeben soll...
also mir fehlt einfach der Ansatz :-(

Go Up