PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Adress-/Portzuweisung bei rnfra - woher weiß ich sie?



trobi
28.03.2005, 13:28
als neuling hab ich mir jetzt ein rnfra geholt, es erfolgreich zusammengelötet und die Testprogramme auch alle soweit zum laufen bekommen. Jetzt wollte ich das Board ganz gerne mit meinen eigenem Programm laufen lassen dabei sollen langfristig unter anderem ein Servo, mehrer Taster, Hindernissensoren und liniensensoren angesteuert werden. ( inder Reihenfolge) Wie ich die anschließe (wenn ich denn alles habe) hab ich im Forum schon gefunden, allerdings weiß ich bei der Programmmierung nicht, woher ich weiß welcher Port/Adresse was ansteuert. Aus dem Schaltplan kann ich das so nicht erkennen.
gibt es da eine Liste für dumme, oder denk ich mir das aus? Letzteres kann ich mir aber nicht vorstellen.

Wäre echt dankbar für eure hilfe

Marco78
28.03.2005, 13:55
Ich hab das rnfra zwar nicht aber ich glaube ich verstehe halbwegs, was du meinst.

Sehe ich es richtig, das du schon herrausgefunden hast, das du für einige Sensoren, etc. PWM oder ein INT brauchst?
Und dein Problem ist jetzt, welcher Ausgang kann PWM oder welcher Eingang kann ein INT auslösen?

Wenn ja, hast du dir schonmal das Datenblatt von Atmel zum AVR angeschaut? Da ist beschrieben, welcher Pin was kann. Im Forum unter Artikel findest du auch eine Auflistung der Abkürzungen (OC1A, ICP, INT0, ...) vielleicht hilft das schon etwas. Wenn nicht, musst du dein Problem etwas genau beschreiben. Oder hoffen, das jemand antwortet, der das rnfra hat.

Und grade letzteres wird schwer. Nicht das jemand das rnfra hat, sondern das sich jemand herab lässt, auf diese Frage zu antworten. Schwer, aber nicht unmöglich!

trobi
28.03.2005, 15:44
danke für die schnelle antwort,

die Artikel hab ich mir durchgelesen und auch einiges mehr verstanden.
pwm hab ich schon ausprobiert, aber was ist ein INT?

Bloß frag ich mich halt woher ich bei unten rein kopierten Anweisungen weiß was H72 ist. Ich mein es funktioniert ja soweit. Aber woher weiß ich jetzt die Adressen der Stiftleisten die ich anschließe?

Wahrscheinlich super einfach wie ich mich kenne. ;-)

Const Writepowerport_adr = &H72 'I2C Adr PCF 2
Const Readpowerport_adr = &H73

I2cwbyte &H74

Marco78
28.03.2005, 16:49
CONST ist die Anweisung, einer Variable (in diesem Fall Writepowerport_adr) einen festen Wert zu geben.
&H72 ist der hexadezimalewert 72.
Man kann dort auch Dezimal- und Binärzahlen eintragen. Ist von Fall zu Fall auch besser zu lesen.
Für Dezimalzaheln dann einfach = 255 oder für binär, = &B11111111 und das beides ist hexadezimal = &HFF

In diesen Fällen handelt es sich um die Stiftleisten der I2C-Schnittstelle des AVR.
Die Werte werden später im Programm irgendwo gebraucht, um dort (am I2C) irgendetwas zu machen.
Ein ändern der Werte newirkt nicht, das du was woanders anschliessen muss. Es handelt sich dann ja noch weiterhin um I2C und die Ports sind fest. Andere Werte erzeugen dann nur ein anderes reagieren des Gerätes. (Eine andere Adresse ausgeben, in eine andere Adresse schreiben, ein anderen I2C-Baustein ansprechen, je nach Funktion, die aufgerufen wird)

trobi
28.03.2005, 16:57
also, sind die adressen einfach nur speicheradressen, wenn ich das richtig verstanden hab.

und wie bekomme ich jetzt raus welcher port zu meiner Stiftleiste gehört wo ich z.B. nen Taster anschließen möchte? über den Schaltplan? Denn so wie ich das verstanden habe muss ich den ja nicht nur konfigurieren, sonderan auch als in- oder output schalten, richtig?

Sorry, falls ich damit nerve, aber ich hab den Teil echt nicht so richtig verstanden. Das proggen an sich ist nicht so mein Problem, halt eher wie ich die richtigen Signale an die richtige Stelle bekomme, so dass auch das richtige Gerät anspricht.

Alter Knacker
28.03.2005, 17:03
vielleicht helfen dir ja die antworten auf meine frage hier:
https://www.roboternetz.de/phpBB2/viewtopic.php?t=8043

geht zwar nicht um dein board, aber die avrs sind die gleichen, glaube ich (mega16).
ansonsten: datenblatt.
mfg knacki

Marco78
28.03.2005, 17:43
Ins Datenblatt sollte man schonmal geschaut haben. Summary reicht ja wenn man eh nur mit BASCOM schreibt. Aber es ist auch gut zu wissen, mit wieviel mA man jeden Pin belasten darf!

Hast du dir den Artikel mal angeschaut? https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=541 Der Link dazu. Jetzt kannst du nicht mehr sagen, du hast ihn nicht gefunden :P

Wie gesagt, das Board kenne ich nicht, aber der Schaltplan in Verbindung mit dem Datenblatt und dem Artikel lässt schonmal einiges vermuten.
Beim Mega16 kannst du z.B. nur an Porta Spannungen messen (ADC).
Portd.0 ist keim PWM Ausgang. INT bedeutet Interrupt. Damit kannst du den normalen Progammablauf verlassen und erst den Interrupt ausführen. Z.B. für NOT-Aus oder so. Um alle Motoren auf einmal anhalten zu können, wenn nicht gleich der ganze Strom abgeschaltet werden soll.
Oder um ein Menü aufzurufen. Wenn das Programm in einer Schleife steckt, und da der Taster um das Menü zu aktivieren nicht abgefragt wird, würdest du von da aus nie in das Menü kommen.
GETRC5 (in der Hilfe mal nachschauen) geht nur an Timer0 (PB0 am Mega16/32). Ein IR-Empfänger wäre an PD6 nutzlos, es sei denn du schreibst ein eigenes Programm um die Signale auszuwerten.

http://www.rowalt.de/mc/index.htm

Da steht erstmal alles, was man zum einsteigen wissen muss. Am Besten Einführung 1 bis 11 ausdrucken und mal in Ruhe alles lesen.
Dort ist auch beschrieben, wie man Ein- und Ausgänge einstellt.
Nerven tust du nicht (zumindest mich nicht.) Mich nervt hier nur, das einige Möchtegernbesserwisser sich zu fein sind, Anfängern auf einfache Fragen zu antworten. Dafür ist ein Forum nicht da.