Sida 1 av 2
do??
Postat: 15 januari 2005, 20:32:36
av Murre
Någon som kan förklara?
I = 0
do
I = I + 1 ' execute these 2 statements
PORTB = I ' until i equals 10 (ten)
loop until I = 10
Postat: 15 januari 2005, 21:06:45
av Icecap
Jovars.
I = 0 betyder att variablen I sätts till noll i värde (innehåll).
Gör sedan följande:
I = I+1 betyder läg 1 till I
PORTB = I skicker värdet av I ut på PORTB
loop until I=10 betyder att allt mellan do...loop until ska göras så länge I'värde är olika 10.
Programmet kommer att skicka det binära mönster ut på PORTB enligt detta:
0000 0001 ' Binärt 1
0000 0010 ' Binärt 2
0000 0011 ' 3
0000 0100 ' 4
0000 0101 ' 5
0000 0110 ' 6
0000 0111 ' 7
0000 1000 ' 8
0000 1001 ' 9
0000 1010 ' 10
och sen köra vidare i programmet.
Jag hade föredragit att göra det såhär men jag är också rätt petig:
I = 0 ' Samma
do ' Samma
I = I + 1 ' Samma
PORTB = I ' Samma
loop until I >= 10 ' Här skiljer det sig
Skillnaden består av att om en extern händelse i programmet ändrar I kommer denna loop att stoppa när värdet på I är lile med eller överstiger 10, den originala stoppade enbart om I var just 10.
Spetsfundighet osv och i normala fall totalt likgiltigt men med en massa interrupts kan det vara viktigt.
Postat: 15 januari 2005, 21:12:14
av Murre
Jag får bara detta medelande var gång jag försöker
UNDECLARED IDENTIFIER 'i'
Har jag missuppfattat nåt?
Postat: 15 januari 2005, 21:28:30
av Icecap
Inte ved jag vad du uppfattar men du kanske ska definiera I för att få funktionen att köra.
Jag förstår att det är nån sorts BASIC och där brukar man ju att deklarera variabler, exakt hur kan jag inte veta då jag har släppt BASIC sedan länge men jag har för mig att man gjorde såhär (eller liknande):
dim I as integer ' eller kanske
dim I as byte ' eller något liknande. 'Dim' delen är jag ganska säker på.
Postat: 15 januari 2005, 21:57:25
av Murre
Funkar inte. du har rätt i att det är basic. Programmet jag kör är mikrobasic
Postat: 15 januari 2005, 22:29:23
av Icecap
Då så, då är det bara att hitta ett exempel-program och kolla hur variabler deklareras eller hitta fram en manual och kolla det samma.
Postat: 15 januari 2005, 22:33:32
av Murre
jag kopierade exeplet från manualen
Postat: 15 januari 2005, 22:35:35
av cykze
i var byte
kanske
Postat: 15 januari 2005, 22:40:33
av Murre
Nej det funkar inte heller. Ingen som har nåt kod exempel att dela med sig
Postat: 15 januari 2005, 22:48:03
av Icecap
Men du.....en del högnivå språk (om man nu kan kalla BASIC för det) skiljer på gemener och versaler i variabler.
'I' är alltså inte det samma som 'i' i det fall (heter 'case sensitive') så var säker på att 'I' är samma bokstav hela vägen.
Postat: 15 januari 2005, 22:57:18
av Murre
Jag har kollat det redan.
Postat: 15 januari 2005, 22:57:48
av Robert Nielsen
Murre> "i var byte" Kommer inte att fungera i mikroBasic.
För att deklarera vad "I" ska vara skriver du:
"Dim I as Byte" (Ta bort citationstecknen, ev. kan du behöva sätta di citationstecknen runt "I")
Postat: 15 januari 2005, 23:20:44
av Murre
UNDERBART!!! Nu funkar det. Tack för all hjälp
Postat: 16 januari 2005, 04:40:27
av Lallas
Hmm.. Själv vill jag skriva:
for (i = 0; i <= 10; i++) vilket nog inte lär funka i PBP, däremot så ska
FOR i = 1 TO 10 fungera enligt manualen

Postat: 16 januari 2005, 11:35:20
av cykze
Robert Nielsen skrev:Murre> "i var byte" Kommer inte att fungera i mikroBasic.
För att deklarera vad "I" ska vara skriver du:
"Dim I as Byte" (Ta bort citationstecknen, ev. kan du behöva sätta di citationstecknen runt "I")
Så mikroBasic gör skillnad på små och stora bokstäver. I alla Basic-varianter jag har testat görs det ingen skillnad alls.