Ich meine gelernt/gelesen zu haben, das man Eingänge mit PinX und Ausgänge mit PortX ansteuert/configuriert. ??Config Porta.0 = Input
Porta.0 = 1
Config Porta.1 = Input
Porta.1 = 1
Config Porta.2 = Input
Porta.2 = 1
Ich meine gelernt/gelesen zu haben, das man Eingänge mit PinX und Ausgänge mit PortX ansteuert/configuriert. ??Config Porta.0 = Input
Porta.0 = 1
Config Porta.1 = Input
Porta.1 = 1
Config Porta.2 = Input
Porta.2 = 1
Stimmt. Da hast du recht.
Inputs immer mit Pin (IN = Input) und Outputs immer mit Port (O = Output).
So merk ich es mir zumindest immer :P (auch wenn es hier nichts gebracht habe, da ich da nicht nach geschaut habe ^.^).
Schaut ruhig mal auf meiner Homepage vorbei:
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Kommt drauf an, was man möchte.
Mit CONFIG PORTx oder CONFIG PORTx.y konfiguriert man auf Output oder Input.
(Das auch CONFIG PINx.y zugelassen wird und auch funktioniert, finde ich verwirrend)
Ist der Portpin ein Ausgang und möchte man dessen Pegel ändern: Portx.y = 1 bzw 0
Möchte man beim Ausgang den Pegel toggeln, geht bei vielen AVR: Pinx.y = 1
Ist der Portpin ein Eingang, wird mit Portx.y = 1 der interne Pullup eingeschaltet und mit 0 augeschaltet. (ach ja, kommt auch noch auf das PUD Bit an, das aber defaultmäßig auf 0 ist. Wenn das auf 1 ist, kann der Pullup nicht eingeschaltet werden - Datenblatt unter "Ports as General Digital I/O")
Um den Zustand eines Portpins zuzuweisen: A = PINx.y
Nachzuvollziehen mit kleinem Testprogramm im Simulator und mit Datenblatt zum jeweiligen AVR, wobei ich mir nicht sicher bin, ob der Simulator beim Simulieren des Toggelns mit PINx.Y = 1 das immer richtig macht (V2.0.5.0)
Gruß
Searcher
Geändert von Searcher (17.11.2012 um 11:04 Uhr)
Hoffentlich liegt das Ziel auch am Weg
..................................................................Der Wegzu einigen meiner Konstruktionen
Die ganze Verwirrung um die Konfiguration von Ein- und Ausgängen kann man aber auch auf ein Minimum reduzieren, indem man
1. die Tatsache nutzt, dass jeder I/O-Port nach dem Einschalten bereits als Eingang konfiguriert ist, und
2. gewünschte Ausgänge über das "DDR"-Register (Data Direction Register) als Ausgänge konfiguriert.
Die kann entweder einzeln geschehen, in diesem Falle also
DDRA.3=1
DDRA.7=1
DDRB.2=1
oder gleich byteweise:
DDRA = &b10001000
DDRB = &b00000100
Ich hätte nie gedacht das so eine einfache frage gleich eine "Port Config" diskusion auslöst. Danke für die Tips die leider nichts geholfen haben. Ich habe noch ein bischen mir dem tiny84 probiert. Nachdem ich denn kaput geflasht habemuste ein zweiter daran glauben. Auch den und versuche mit einem tiny861 und einem tiny26 haben nicht zum erfolg geführt. Was leuft hier denn falsch? Es können nicht vier controller defekt sein. Ich habe mal bilder vom letztem versuch angehängt. Vieleicht sieht ja jemand den fehler.
MfG mycroc
Rechtschreibung war, ist und wird wohl immer eine schwäche von mir sein. Bitte nicht kommentieren!
Wenn Du nicht direkt aus Bascom IDE heraus flashst, fällt mir nur noch ein, daß irgendwie die falsche Datei ausgewählt wird und auf den Tiny geschoben wird.
Gruß
Searcher
Hoffentlich liegt das Ziel auch am Weg
..................................................................Der Wegzu einigen meiner Konstruktionen
Wie geht denn "kaputt flashen"?
Wenn die Fuses nicht mehr passen, fehlt maximal der externe Takt, um ihn per Fuses wieder auf internen Takt "umzuschalten". Bascom kann mit den meisten Programmern selbst umgehen.
Wurde ein Reset-Pin "weggefuset", hilft ein "Hochvoltprogrammer".
Statt mit dem Oszi würde ich auch mal mit einer LED (inkl. Vorwiderstand) testen. Evtl. liegt es auch am Board. Nicht, dass ständig der Reset aktiv ist. Zum Üben würde ich die Fuses überhaupt nicht ändern. Der AVR läuft von Haus aus mit internem Takt und für eine blinkende LED braucht man da nichts verstellen.
Wenn das Herz involviert ist, steht die Logik außen vor! \/
Lesezeichen