Sida 2 av 3
Postat: 9 februari 2008, 21:02:09
av Fredrick
Patrik skicka mig ett PM så skall jag hjälpa dig...
Vilken PIC använder du?
Postat: 9 februari 2008, 21:07:50
av Patrick
danei skrev:Du har ju fått tips på hur du ska göra i varje svar. Vill du ha tipsen inlindade i bomull så får du nog leta någon annan stans.
Fanns den koden med som exempelkod i kompilatorn? Det ser det inte ut som.
Japp den fanns med!
Postat: 9 februari 2008, 21:17:52
av Fredrick
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
Postat: 10 februari 2008, 00:15:15
av Andy
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
Postat: 10 februari 2008, 00:23:59
av Fredrick
PORTB.1 kommer inte att "blinka" alls med din kod...
Postat: 10 februari 2008, 00:30:21
av Andy
Jo det gör den, för jag har kört den som en test för ett tag sen.
Edit. inte 1 men 0, detta är ett fungerande exempel som lätt går att ändra i
Postat: 10 februari 2008, 00:44:49
av Fredrick
Min exempel kod fungerar både med 1 och 0, desutom så tar den mindre plats i PIC´en också.

Postat: 10 februari 2008, 00:56:20
av Andy
Min kod går inte alls in i PICen, den måste kompileras först och då blir den förmodligen inte mycket större än din kod.

Postat: 10 februari 2008, 01:00:31
av Patrick
Hur som helst!
Vi har en GULD värd person FREDRICK här.
Tackar så hjärtligt för all hjälp och support!

Postat: 10 februari 2008, 01:06:38
av Fredrick
Andy skrev:Min kod går inte alls in i PICen, den måste kompileras först och då blir den förmodligen inte mycket större än din kod.

17 också...... hatar att ha fel...
Jag kollade just och bägge kodena förbrukar 65 Words.
1 - 0 till dig..

Postat: 10 februari 2008, 01:16:05
av Andy
Skit i det, huvudsaken att Patrick är lycklig!

Postat: 10 februari 2008, 01:17:15
av Fredrick

Sant..
Postat: 10 februari 2008, 10:39:56
av H.O
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]
Postat: 11 februari 2008, 18:17:57
av Andy
När vi ändå spånar lite på PBP, är det någon som har något bra exempel på floating point? Gärna ett exempel med avläsning av en A/D ingång och presentation av ett decimal tal. PBP har många fina egenskaper men så vitt jag har kunnat se finns det inget bra stöd för floating point.

Postat: 11 februari 2008, 18:25:22
av Icecap
FP är mycket sällan något man använder i µC-världen, det går nästan alltid med fixed-point.