Mikrobasic, nybörjarfrågor...
Mikrobasic, nybörjarfrågor...
Har köpt mig easypic2 från mikroelektronika.
Har blinkat lite med dioder och vill nu lära mig att styra dom via
knapparna, har suttit halva dagen utan att få pic´n att reagera på knapptryckingar.
Någon som har ett enkelt exempel som funkar i mikrobasic?
vill alltså kunna läsa av någon av ingångarna...
Kanske verkar busenkelt, men jag får inte det att fungera...
:oops:
//Dan
Har blinkat lite med dioder och vill nu lära mig att styra dom via
knapparna, har suttit halva dagen utan att få pic´n att reagera på knapptryckingar.
Någon som har ett enkelt exempel som funkar i mikrobasic?
vill alltså kunna läsa av någon av ingångarna...
Kanske verkar busenkelt, men jag får inte det att fungera...
:oops:
//Dan
Har du konsulterat den stora manualen till att börja med?
Principen är att du sätter den pinne som knappen är inkopplad till som ingång, sedan läser du av pinnen i en programloop och hoppar till olika programsnuttar beroende på om pinnen är hög eller låg. När du kopplar inte en knapp måste detta kombineras med ett pullup/-down-motstånd för att definiera ett spänningstillstånd när knappen inte är nedtryckt.
Berätta/visa hur du kopplat och vilken kod du försökt använda så kan vi försöka rätta till det som är fel!
Vill du läsa på egen hand så verkar den här boken väldigt bra.
Principen är att du sätter den pinne som knappen är inkopplad till som ingång, sedan läser du av pinnen i en programloop och hoppar till olika programsnuttar beroende på om pinnen är hög eller låg. När du kopplar inte en knapp måste detta kombineras med ett pullup/-down-motstånd för att definiera ett spänningstillstånd när knappen inte är nedtryckt.
Berätta/visa hur du kopplat och vilken kod du försökt använda så kan vi försöka rätta till det som är fel!
Vill du läsa på egen hand så verkar den här boken väldigt bra.
Detta är en variant jag provat, men det blinkar hela tiden...
Uppkopplingen är ju redan klar, använder Easypic2, pull down motstånden aktiverade.
program Led_blinking
main:
TRISA = 255
TRISB = 0
clearbit (PORTA,1)
IF testbit (PORTA,1) =1 THen GOTO blink
goto main
end if
blink:
PORTB = %11111111 ' turn ON diodes on portb
delay_ms(1000) ' wait for 1 second
PORTB = %00000000 ' turn OFF diodes on portb
delay_ms(1000) ' wait for 1 second
goto main ' endless loop
end.
Uppkopplingen är ju redan klar, använder Easypic2, pull down motstånden aktiverade.
program Led_blinking
main:
TRISA = 255
TRISB = 0
clearbit (PORTA,1)
IF testbit (PORTA,1) =1 THen GOTO blink
goto main
end if
blink:
PORTB = %11111111 ' turn ON diodes on portb
delay_ms(1000) ' wait for 1 second
PORTB = %00000000 ' turn OFF diodes on portb
delay_ms(1000) ' wait for 1 second
goto main ' endless loop
end.
-
- Inlägg: 700
- Blev medlem: 23 augusti 2003, 20:42:38
Så här hade jag nog gjort:
Kod: Markera allt
TRISA = 255
TRISB = 0
cmcon = 7 ' Stäng av komparator om du har en pic med inbyg komparator.
main:
IF PortA.1 = 1 Then
Goto blink
Else
Goto main
end if
blink:
PORTB = %11111111
delay_ms(1000) ' wait for 1 second
PORTB = %00000000
delay_ms(1000) ' wait for 1 second
goto main
end.
hittade en snutt som fungerar som på/av, men jag fattar inte riktigt hur det
fungerar....
Får mixtra lite till å se vad som händer...
program Test
dim oldstate as byte
main:
TRISB = 255
TRISD = 0
while true
if Button(PORTB, 0, 1, 1) then
oldstate = 255
end if
if oldstate and Button(PORTB, 0, 1, 0) then
PORTD = not(PORTD)
oldstate = 0
end if
wend
goto main
End.
//Dan
fungerar....
Får mixtra lite till å se vad som händer...
program Test
dim oldstate as byte
main:
TRISB = 255
TRISD = 0
while true
if Button(PORTB, 0, 1, 1) then
oldstate = 255
end if
if oldstate and Button(PORTB, 0, 1, 0) then
PORTD = not(PORTD)
oldstate = 0
end if
wend
goto main
End.
//Dan