- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 5 von 5

Thema: Port(s) umschalten am tiny13 mit Problemen

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.686

    Port(s) umschalten am tiny13 mit Problemen

    Hallo,

    ich kann ein seltsames Phänomen nicht selber lösen. Hinweise in den Foren habe ich dazu nicht gefunden.

    Aufgabe: Je eine LED an Port3 und Port4. Eine Taste an Port0 wird abgefragt. Ohne Tastendruck leuchtet nur die eine LED (grün), solange die Taste gedrückt wird, leuchtet nur die andere - rLED. Assembler, AVRStudio, flashen über RS232 nach dem Lernpaket, s.u.

    Die Funktion ist korrekt am Experimentierboard (siehe Schaltschema, aus Lernpaket µC, Kainka) solange es an der RS232 hängt. Nach dem Reset leuchtet codegerecht die gLED, durch Tastendruck wird auf die rLED umgeschaltet.

    Code:
    ;===================================================================================
    ; Deklarationen für den Praeprozessor und Konstanten (s.auch oben Speicherbelegung)
    
    #include "tn13def.inc"
    
    #define	a	r16	;Kurzbezeichung für Allzweckregister r16
    ;
    #define taste0	0	;Taste0 auf PB0
    #define	rLED	3	;Rote LED (auf Port PB3)
    #define gLED	4	;Grüne LED (auf Port PB4)
    ;===================================================================================
    .org	0x0000			;Interrupt Definition / I Handler Tabelle
    ;	Code	Labels			Comments
    	rjmp 	reset		;Reset Handl. power-on, brown-out, watchdog
    ;===================================================================================
    ; Hauptprogramm
    ;===================================================================================
    ;
    reset:		;=== Generelle Initialisierung
    	rcall	mc_init
    ;
    hauptpr:	;=== Löse Aufgabe: Teste Port PB0 auf Tastendruck
    h2:
    	sbis	pinb,taste0	;Wenn Pinb_0 (0..7) = 1, dann rLED/PB3 einschalten
    	rjmp	grnan		;  sonst schalte die gLED/PB4 ein
    rotan:
    	sbi	portb,rLED	;Rote LED/PB3 an
    	cbi	portb,gLED	;    gLED/PB4 aus
    	rjmp	tastende
    grnan:
    	cbi	portb,rLED	;Rote LED/PB3 aus
    	sbi	portb,gLED	;    gLED/PB4 an
    ;
    tastende:
    	rjmp	h2
    ;
    ;===================================================================================
    ; Prozeduren
    ;===================================================================================
    ;
    ;===================================================================================
    ; Initialisierungen
    ;===================================================================================
    ;
    mc_init:	;=== Initialisiere Mikrocontroller
    		;ALLE Register initialisieren hier := pull-ups einschalten
    ;
    	ldi	a,0b00111000	;Datenrichtung "Eingänge" für ports 0 - 2
    	out	ddrb,a		;  und         "Ausgänge" für ports 3 - 5
    				;
    	ldi	a,0b00111000
    	out	portb,a		;  ports aus-(=) oder ein(1)schalten;  low = sink
    	ret		;=====----->>>>>
    ;
    ;===================================================================================
    ; Ende des Quellcodes
    ;===================================================================================
    Wenn ich die Schaltung (also die Platine nur umstecke) an einem 9V-Block laufen lasse, leuchtet sofort die rLED auf und lässt sich nicht mehr ausknipsen. Dabei ist es egal, ob ich die 9V am Anschluss RTS einleite oder, wie im Buch zum Lernpaket angegeben an DTR.

    Eine Kontrolle der Spannungen ohne Peripherie und µC an der Platine mit angeschlossenem 9V-Block gab keine unerlaubten Spannungen an den 8 Pins.

    Das Problem ist eigentlich aufgetaucht bei einer interruptgesteuerten Tastenabfrage mit Signalausgabe an einem Piezo. Daher hatte ich den beschriebenen Versuchsaufbau erstellt.

    Der entsprechende Passus im datasheet
    ATtiny13 (179 pages, revision H, updated 10/07) auf
    http://www.atmel.com/dyn/resources/p...ts/doc2535.pdf
    auf S 45, Abschnitt Switching Between Input and Output - oberhalb table 19 - ist mir schon so einigermassen klar - aber ich verstosse offenbar nicht dagegen (Port wird ja nur aus- und eingeschaltet - nicht von in auf out).

    Kann mir bitte jemand helfen?
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken tastest91.jpg   lp-_c-kainka.jpg  
    Ciao sagt der JoeamBerg

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test