Panoss
27-02-06, 18:12
Λοιπόν...έγραψα το εξής πρόγραμμα για ένα AT90S1200, να ανάβει δύο leds, το ένα συνδεδεμένο στο PORTB και το άλλο στο PORTD. Αλλά ανάβει μόνο αυτό στο PORTB. Γιατί συμβαίνει αυτό? Άλλαξα το MCU με άλλο μπας κι ήταν καμμένο το PORTD αλλά τίποτα. Μέτρησα με το βολτόμετρο το PD0 αλλά δε βγάζει ρεύμα. Αντίθετα το PB7 βγάζει ρεύμα κανονικά. Δοκίμασα με όλα τα πινς του PORTD αλλά τα ίδια.
Τι μπορεί να συμβαίνει?
Το πρόγραμμα είνα το εξής απλούστατο:
Από κάτω το κύκλωμα.
.include "d:\Program Files\Atmel\AVR Tools\AvrAssembler\Appnotes\1200def.inc"
.def temp=r16
.cseg
loop:
ldi temp,0b11111111 ;
out DDRD, temp ;PortD all outputs
sbi PORTD,pd0 ;Set το pd0(pin 2) για να ανάψει το led 2
out DDRB,temp
sbi portb,pb7 ;Set το pb7(pin 19) για να ανάψει το led 1
rjmp loop
Τι μπορεί να συμβαίνει?
Το πρόγραμμα είνα το εξής απλούστατο:
Από κάτω το κύκλωμα.
.include "d:\Program Files\Atmel\AVR Tools\AvrAssembler\Appnotes\1200def.inc"
.def temp=r16
.cseg
loop:
ldi temp,0b11111111 ;
out DDRD, temp ;PortD all outputs
sbi PORTD,pd0 ;Set το pd0(pin 2) για να ανάψει το led 2
out DDRB,temp
sbi portb,pb7 ;Set το pb7(pin 19) για να ανάψει το led 1
rjmp loop