Sida 1 av 1
Behöver hjälp, ny på pic (basic)
Postat: 7 maj 2005, 22:53:17
av björn
hej, jag har köpt en P80481 från kjell för att försöka få lite koll på pic programmereing. Jag gjordfe först det "obligatoriska" rinnande vattnet och allt gick bra. sen skulle jag försöka påverka med en av knapparna men det vill sig inte alls.
Jag kodar i PICbasic och i detta försöket försöker jag få en liten fördröjning på det rinnande vattnet när Switch1 är nedtryckt.
kan någon hjälpa mig? jag har sökt här och googlat men inte hittat något bra svar.
TRISA = $FF
TRISB = $00
Loop:
PORTB = 1'$01
pause 250
PORTB = 2'$02
pause 250
PORTB = 4'$04
pause 250
PORTB = 8'$08
pause 250
PORTB = 16'$10
pause 250
PORTB = 32'$20
pause 250
IF PORTA.1 THEN pause 5000
'PORTB = $80
goto Loop
Postat: 7 maj 2005, 23:12:13
av Hedis
Jag är inte så hemma på basic, men det är inte så att du måste peka if-satsen emot en rutin?
IF PORTA.1 THEN delay
delay:
pause 5000
goto loop
Vad gör -->'<-- före portb=$80 förresten?
Förresten, du måste inte ha if porta.1=1 then delay?
Jag kan som sagt ingen basic, bara gissningar.
Postat: 7 maj 2005, 23:19:29
av björn
Vad gör -->'<-- före portb=$80 förresten?
Ingenting

, det är som jag bortkomm'enterade $80 för att se om det gick att skriva in det i vanliga siffror bara.
Jag testar dina ideer i denna stund.
Postat: 7 maj 2005, 23:23:26
av Hedis
Ahh, misstänkte nästan att det var tecknet för kommentar. ; är fint i Assembler annars.

Postat: 7 maj 2005, 23:26:11
av Hedis
Jag kollade lite i en annan tråd här.
IF pWidth = 1 THEN igen har hak0n använt sig utav.
Så prova IF porta.1 = 1 THEN delay
delay:
pause 5000
goto loop
Postat: 8 maj 2005, 00:05:59
av björn
tack, nu verkar det som det borde funka... för om jag sätter IF porta.1 = 0 så hoppar den till delay rutinen, men jag lyckas inte få knappen att påverka.
börjar tro att det är kortet som strular, får ta och mäta på det imorgon.
Jaja, jag tackar än engång för hjälpen, det kommer nog fler frågor imorgon
Mvh Björn
Postat: 8 maj 2005, 23:53:24
av björn
Det var inte fel på kortet, det var att jag hade glömt stänga den analoga comparatorn med cmcon = 7. När det var gjort funkade allt

Postat: 9 maj 2005, 00:23:08
av Hedis
Grymmt störande att sånna extrafeatures är aktiva som standard.
På AVR måste man aktivera sånt om man vill. (förutom JTAG på mega32:an, tog någon timme innan jag hittade felet, men det är ju bara för det är en programmeringsmöjlighet)
Postat: 9 maj 2005, 17:37:55
av ristomemo
När du trycker ned knappen, jordar du då, eller lägger du på +5V ?
Om du har en knapp med slutning mot jord måste du ha ett pullup motstånd. Vissa pinnar på PICarna har interna pullup motsånd, men dessa måste aktiveras har jag för mig.
Vilken PIC är det du håller på med 16F ????
Postat: 9 maj 2005, 19:44:16
av björn
det är 16f628. jag lägger en etta vid nertryckt kontakt. Men som sagt det funkar fin nu efter att jag stängt den attans comparatorn.