PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Port Bits !einzeln! setzen wie?[gelöst]



µautonom
05.01.2008, 21:01
Halllo, Leute, ich arbeite mich zur Zeit in die AVR welt ein :D
Muss mich doch nun mit den AVRs beschäftigen da wir bald an der FH nur Atmel Controller programmieren werden.

Hab vorher mit PICs gearbeitet.

Nun zur meiner eigentlichen Frage, wie kann man bei den AVRs die PortBits einzeln setzen udn nicht den ganzen Port? also z.B PB0

Ich hab schon alle Varianten probiert



.include "m16def.inc"

.DEF config = R16


RJMP main

main:

LDI config, 0b111111
OUT DDRB, config
loop:
SBI PB0, 0x00
RJMP loop


Aber er setzt mir alle PORTB Bits??? Geht das überhaupt beim AVR :P

Mfg

Rofo88
05.01.2008, 21:53
Nu freilich geht das mit nem AVR.


sbi PortB,0

Schau mal in dein Include-File da steht drinn als was PB0 definiert ist dann wird dir klar warum das nicht geht.

Slein
05.01.2008, 21:53
Einfach nich soo kompliziert denken :)

SBI portc, 0
CBI portc,0

Setzt (S) und cleared (C) bit0 portc

edit:
Vollständige Documentation der AVR ASM Instructions:
http://www.atmel.com/dyn/resources/prod_documents/doc0856.pdf

µautonom
05.01.2008, 22:56
EDIT: Habs hinbekommen , danke




.include "m16def.inc"

.DEF config = R16
.Def test = R17


RJMP main

main:

LDI config, 0b111111
OUT DDRB, config
ldi test, 0xFF
out PortB, test
loop:
cbi PortB,0

RJMP loop

Mfg