Programmera PIC med basic stamp språket?
Kör detta istället.
När du använder HIGH och LOW kommandona så blir porten automatiskt en utgång du behöver inte tala om för kompilatorn att dessa skall vara outputs.
Om du använder en PIC men analoga ingångar så måste du stänga av dessa och göra alla pinnar till digitala I/O.
Main:
HIGH PORTB.0
HIGH PORTB.1
PAUSE 500
LOW PORTB.0
LOW PORTB.1
PAUSE 500
GOTO Main
När du använder HIGH och LOW kommandona så blir porten automatiskt en utgång du behöver inte tala om för kompilatorn att dessa skall vara outputs.
Om du använder en PIC men analoga ingångar så måste du stänga av dessa och göra alla pinnar till digitala I/O.
Main:
HIGH PORTB.0
HIGH PORTB.1
PAUSE 500
LOW PORTB.0
LOW PORTB.1
PAUSE 500
GOTO Main
Eller testa detta istället:
Cnt VAR BYTE 'Declare Cnt as a byte
TRISB = 0 ' Set PORTB pins as outputs
AGAIN:
FOR Cnt = 1 TO 3
PORTB.0 = 1 ' Turn ON LED
PAUSE 250 ' Wait 250ms
PORTB.0 = 0 ' Turn OFF LED
PAUSE 250 ' Wait 250ms
NEXT Cnt
PAUSE 2000 ' Wait 2 seconds
GOTO AGAIN ' Repeat
END ' End of program
Cnt VAR BYTE 'Declare Cnt as a byte
TRISB = 0 ' Set PORTB pins as outputs
AGAIN:
FOR Cnt = 1 TO 3
PORTB.0 = 1 ' Turn ON LED
PAUSE 250 ' Wait 250ms
PORTB.0 = 0 ' Turn OFF LED
PAUSE 250 ' Wait 250ms
NEXT Cnt
PAUSE 2000 ' Wait 2 seconds
GOTO AGAIN ' Repeat
END ' End of program
Hej,
Om man använder HIGH och LOW så behöver man inte alls sätta TRIS-registret själv innan - som någon redan påpekat. Däremot är det lite "slöseri" eftersom PBP sätter TRIS varje gång ett HIGH eller LOW kommando påträffas. Det är med andra ord snabbare och mer kod-effektivt att själv sätta TRIS-registret och sedan göra PortB.1 = 1 t.ex
Sen det här med HIGH B0 etc. B0, B1 osv är namn på variabler eller I/O (kommer inte ihåg vilket) på BasicSTAMP och funkar inte rakt av i PBP. Däremot kan du göra INCLUDE "bs1defs.bas" eller INCLUDE bs2defs.bas" för att inkludera en fil med alias för att matcha BS1 eller BS2 så att B0 osv går att använda, rätt onödigt men i alla fall...
Det samma gäller om man vill använda BasicSTAMPens definitioner på baudrate, typ N2400 etc. Då inkluderar du filen modedefs.bas och kan sedan skriva till exempel, SEROUT PortB.2, N2400,[#MyVAR, 10, 13]
Om man använder HIGH och LOW så behöver man inte alls sätta TRIS-registret själv innan - som någon redan påpekat. Däremot är det lite "slöseri" eftersom PBP sätter TRIS varje gång ett HIGH eller LOW kommando påträffas. Det är med andra ord snabbare och mer kod-effektivt att själv sätta TRIS-registret och sedan göra PortB.1 = 1 t.ex
Sen det här med HIGH B0 etc. B0, B1 osv är namn på variabler eller I/O (kommer inte ihåg vilket) på BasicSTAMP och funkar inte rakt av i PBP. Däremot kan du göra INCLUDE "bs1defs.bas" eller INCLUDE bs2defs.bas" för att inkludera en fil med alias för att matcha BS1 eller BS2 så att B0 osv går att använda, rätt onödigt men i alla fall...
Det samma gäller om man vill använda BasicSTAMPens definitioner på baudrate, typ N2400 etc. Då inkluderar du filen modedefs.bas och kan sedan skriva till exempel, SEROUT PortB.2, N2400,[#MyVAR, 10, 13]