PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : AVR Byteport



Baui
21.03.2005, 19:19
Hallo,
ich habe mal eine kleine Frage zum schalten eines Byteports in Bascom.
An sich nicht das Problem. Ich steuere jedoch damit einen Schrittmotor (nur mit den ersten vier Bits des Byteports).
Meine Frage nun:
wie kann ich nur die vier Bits (0-3) schalten ohne die anderen (4-7) zu verändern. Sie sollen den Zustand den sie haben eifnach beibehalten.

Freue mich über jeden Tipp

Gruß
Baui

21.03.2005, 21:18
Hallo

Alten Wert vom Port einlesen

Bits 0-3 mit einer UND Verknüpfung löschen

BITS 0 -3 mit alten Portwert ODER Verknüpfen

Neuen Wert auf Port ausgeben.

temp = PORTB and 0b11110000
portb = temp OR (Neue Bitfolge für Bit 0 bis3)

MFG

recycle
21.03.2005, 23:19
wie kann ich nur die vier Bits (0-3) schalten ohne die anderen (4-7) zu verändern


Über PinX.0 - PinX.7, bzw. PortX.0 - PortX.7 kannst du in Bascom auch jeden Pin eines Ports einzeln lesen und setzen.

Baui
22.03.2005, 09:08
Vielen Dank,
genau das wollte ich wissen mit dem Byteport. DANKE

@recycle: Das wusste ich schon mit den einzelnen Ports. Allerdings braucht man dann soviele programmbefehle wenn man zwei SChrittmotoren am Controller hat. Trotzdem danke für die Hilfe

Gruß
Baui

Baui
23.03.2005, 09:49
Hi,
wo wir schon gerade beim Byteport sind, habe ich noch eine Frage dazu.

Kann es sein das Portd, wenn man ihn als Byteport schaltet, nur die Bits 2-7 schaltet?
Ich verwende Print und Input Befehle in meinem Programm.
Werden die Hardware UART Bits 0-1 des Portd dann vom restlichen Port entkoppelt? Darf man den Byteport D bei Print und Input Befehlen dann überhaupt schalten, oder wird dann der serielle Datenempfang gestört?

Bin auch hier wieder einmal über jeden Tipp dankbar

Gruß
Baui

Baui
24.03.2005, 09:59
hmm also weiss von euch darauf keiner eine Antwort???

Gruß
Baui

Kjion
24.03.2005, 10:29
RTFM kann ich da eigenltich nur sagen. Warum ließt das eigentlich nie jemand ? Es stehen ne ganze Menge interessante Sachen drin ...

Zum Beispiel Seite 144 des ATMega16:

When the Transmitter is enabled, the normal port operation of the TxD pin is overridden by the USART and given the function as the ransmitter’s serial output.

Also ists egal was du mit den DDRn bzw PORTn Bits machst. Den UART stört es nicht...

MfG Kjion

Baui
24.03.2005, 15:38
danke kijon
hätt ich auch mal drauf kommen können ;-)

fürs nächste mal merk ichs mir

Gruß
Baui