PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mehrere pins zu einem Port zusammenfassen



Hannebambel
13.02.2005, 19:23
Mal eine kleine Frage ist es möglich mehrere Pins zu einem Port zusammen zu schalten (naja eher zusammen zu programmieren).
z.b.
pinb.6 , pinb.7, pind.5, pind.6, pind.7, pinb.0, pind.2 und pind.3
zusammenfügen kann das sie sich wie ein port verhalten
z.b.
portxy = &b01010100
oder kann man das mit einer variable lösen?

Ich hoffe ich hab mich da ein bissel verständlich ausgedrückt.

x-ryder
13.02.2005, 22:07
ne leider nicht verständlich genug glaube ich ^^

du willst doch gleichzeitig schalten:
portb.0
portb.6
portb.7

portd.2
portd.3
portd.5
portd.6
portd.7

dann musste zwei anweisungen benutzen oder erklär doch mal was du machen willst!

Martin

Hannebambel
14.02.2005, 09:14
Ich will an 2 ports jeweils ein Bitmuster (z.b. &b01010100) ausgeben aber nicht jeden pin einzeln ansprechen. also frage ich mich ob es eine möglichkeit gibt einfach je acht pins zusammenzufassen das sie wie ein ganz normaler port behandelt werden. vieleicht kann man das auch mit variablen machen.
ich will also portxy bzw variable xy=&b010101000 eingeben und der uC soll die einzelnen bits in die vorher festgelegten ausgangsregister schreiben.

RCO
14.02.2005, 09:17
Man könnte eine Funtion schreiben, die die Pins dann für dich setzt:

Ausgabe(01010100)

Funktion Ausgabe(byval Pinout as byte)
Portx.y = Pinout.1
...

Sollte gehen, oder?
Ich meine aber auch irgendwo mal gelesen zu haben, dass es anders geht. Ich fürchte aber, das war in C.

MFG Moritz

Toastbrot
14.02.2005, 12:34
Ich nutze diesen Thread jetzt einfach mal für eine ziemlich ähnliche Frage:

Kann ich die PWM-Ports meiner RN-Control auch auf andere Ports legen? Beispielsweise auf Pinc.2 und Pinc.3 (also 3 und 4).

Es geht mir darum, einen eigenen Motortreiber zu verwenden. dazu nehme ich den L293 raus und schließe an Port C einen neuen an. Ich will das so machen, da ich dann einfach ein Stecker von Port C zu meinem Motortreiber machen kann. Dazu muss ich PWM aber von D nach C bekommen...

Schonmal vielen Dank!

(Bevor jemand fragt warum ich den Treiber nicht an D hänge: Da ist der Summer schon dran, käme irgendwie nicht so gut ;))

x-ryder
14.02.2005, 13:26
häng den summer an portc, nen PWM umlegen geht nicht weil der hardwaremäßig verdrahtet ist, aber du kannst immer noch einen selber schreiben ^^

Toastbrot
14.02.2005, 14:07
Den Summer an Port C hängen ist äußerst unschön, dann müsste ich wieder so "fliegende" verdrahtungen auf der Platine amchen, das wollte ich vermeiden. Dann muss ich wohl in den sauren Apfel beißen und 2 Kabel zu meinem Motorboard machen :(

Toastbrot
18.02.2005, 17:42
Ich habe dazu noch eine Frage! Und zwar würde ich gerne wissen wie/ob ich das PWM Signal für beliebige Ports anwenden kann?

Um die Frage mal etwas konkreter zu machen: idR verwendet man das ja zur Motorsteuerung. Wenn ich einen externen Motortreiber an Port B (Beispielsweise) hänge, woher weiß der Controller nachher, dass er das PWM signal dazu nutzen soll, oder kann der das nur auf die standartmäßigen Motor-Ports der RN-Control schalten? Ich programmiere mit Bascom Basic

harryup
20.02.2005, 13:14
hi,
wie x-ryder oben schon erwähnt hat, den pwm-ausgang 'umziehen' geht nicht. die register 'ocr_xx' sprechen den entsprechenden port an und sonst nix.
du hast natürlich immer die möglichkeit, einen timer für pwm zwecke zu verwenden, in der timer-routine muss dann halt ein beliebiger pin z.b. getoggelt werden und der reloadwert des timers neu gesetzt werden. damit kann auf jedem pin ein pwm realisiert werden, eben nicht so simpel wie der hardware-pwm.
grüssens, harry

Toastbrot
20.02.2005, 15:58
Ja, danke, habe mit x-ryder auch schon über ICQ "gesprochen"... Geht so ohne weiteres wohl nicht. Habe mir jetzt etwas ganz anderes überlegt. Ich bastel mir gerade eine Platine mit 4 Wannenbuchsen als einganz und 4 (wobei ich könnte da auch noch mehr machen) als Ausgang. Dazwischen mache ich dann Steckbrücken oder irgendwelche Klemmen. Dann kann ich die vorhandenen Motorports einfach auf eine Buchse stecken. Außerdem Packe ich auf die Platine noch ein Stromverteiler für so ganzen Kram der auch mit Spannung versorgt werden will.