skilnad PIC-Basic Stamp
TRIS-registerna talar om om portpinnarna är ingångar eller utgångar. Instruktionen "MOVWF TRISA" flyttar helt enkelt innehållet i W-registret till TRISA. Har du då rätt värde i W från början så kan du få t.ex RA4 till input. Det beror helt enkelt på vad du laddat i W-registret i instruktionerna före.
hej, igen
en idiotisk fråga till bara:
är följande programspråk C eller vad är det??
_____________________________________________
include f628_4i
include jlib
var volatile byte CMCON at 0x1F = 0x07 -- disable port a analog functions
var bit LED is pin_a0
pin_a0_direction = output
forever loop
delay_100ms( 5 )
LED = high
delay_100ms( 5 )
LED = low
end loop
en idiotisk fråga till bara:
är följande programspråk C eller vad är det??
_____________________________________________
include f628_4i
include jlib
var volatile byte CMCON at 0x1F = 0x07 -- disable port a analog functions
var bit LED is pin_a0
pin_a0_direction = output
forever loop
delay_100ms( 5 )
LED = high
delay_100ms( 5 )
LED = low
end loop
basic har jag redan programerat med i många år (basic stamp) men tanken va ju att sluta med det...
det jag tycker är konstigt bara är:
för att programera en pic12f628 i basic behöver man väl en basic tolk?
jag hittade exemplet på: http://www.voti.nl/blink/index.html
och där framgår inte att man skulle ha en basic tolk???
det jag tycker är konstigt bara är:
för att programera en pic12f628 i basic behöver man väl en basic tolk?
jag hittade exemplet på: http://www.voti.nl/blink/index.html
och där framgår inte att man skulle ha en basic tolk???

Ja, det kan ju då vara JAL (Just Another Language). Börja inte med det heller, det är ett mycket specifikt PIC-språk.
Om du MÅSTE börja med annat än Assembler kan jag rekommendera MikroC som är gratis men har en kodbegränsning som, i nuläget, vida överskrider ditt behov.
Men jag vill fortfarande rekommendera MPLAB från Microchip, det ger den bästa start i min mening, sedan kan man avancera uppåt när man väl 'kan' PIC.
Om du MÅSTE börja med annat än Assembler kan jag rekommendera MikroC som är gratis men har en kodbegränsning som, i nuläget, vida överskrider ditt behov.
Men jag vill fortfarande rekommendera MPLAB från Microchip, det ger den bästa start i min mening, sedan kan man avancera uppåt när man väl 'kan' PIC.
vad är lättast att börja med mikroC eller assembler?
jag har läst ca 50sider i produkt bladet o kolat på miljontals andra ställen o suttit time efter time o läst om assembler, nu börjar jag förstå nåt men det är väldigt lite... (jag kan fortfarande så lite så att jag tycker att det är fullkomligt ologiskt...)
men hur funkar det när man programerar en pic i annat än assembler? måste man inte ha en "tolk" då? eller kan en pic fler språk? som tex "JAL"?
jag har läst ca 50sider i produkt bladet o kolat på miljontals andra ställen o suttit time efter time o läst om assembler, nu börjar jag förstå nåt men det är väldigt lite... (jag kan fortfarande så lite så att jag tycker att det är fullkomligt ologiskt...)
men hur funkar det när man programerar en pic i annat än assembler? måste man inte ha en "tolk" då? eller kan en pic fler språk? som tex "JAL"?
En PIC kan inga språk!
Den kan däremot utföra de instruktioner som man lägger i minnet på de. De instruktioner kan man skapa med assembler, C, JAL, Pascal, Basic eller annat språk efter önska använder en kompiler, dessa kompilers "omvandlar" det man skriver till assembler och kör det sedan genom en assembler som då gör den slutgiltiga koden som man kan programmera in i PIC'en.
Så när programkoden väl ligger som en HEX-fil har PIC'en ingen aning om vem eller vad som har genererat dessa instruktioner, den utför dom bara.
Mitt råd är att traska på i assembler-spåret, jag tycker att inlärningströskeln är lägst där om man vill förstå vad som händer. Senare kan du kliva "uppåt" i språk men det finns en inlärningströskel där också, alltså ska du klara av 2 steg om du går direkt på ett högnivåspråk, med assembler är det bara 1 steg nu.
Den kan däremot utföra de instruktioner som man lägger i minnet på de. De instruktioner kan man skapa med assembler, C, JAL, Pascal, Basic eller annat språk efter önska använder en kompiler, dessa kompilers "omvandlar" det man skriver till assembler och kör det sedan genom en assembler som då gör den slutgiltiga koden som man kan programmera in i PIC'en.
Så när programkoden väl ligger som en HEX-fil har PIC'en ingen aning om vem eller vad som har genererat dessa instruktioner, den utför dom bara.
Mitt råd är att traska på i assembler-spåret, jag tycker att inlärningströskeln är lägst där om man vill förstå vad som händer. Senare kan du kliva "uppåt" i språk men det finns en inlärningströskel där också, alltså ska du klara av 2 steg om du går direkt på ett högnivåspråk, med assembler är det bara 1 steg nu.
Första träffen http://www.mstracey.btinternet.co.uk/pi ... icmain.htm på google med "pic tutorial" tyckte jag var ganska bra när jag började med PIC (några månader sedan). Den förklarar ganska bra om assembler, hur man programmerar en PIC, och även hur man kopplar den för enkla test.
Å andra sidan kunde jag delvis assembler redan när jag började med PIC, och det underlättade nog en hel del. När man väl har lärt sig grunderna blir databladen mycket lättare att förstå sig på, och samtidigt även mycket mer användbara.
Å andra sidan kunde jag delvis assembler redan när jag började med PIC, och det underlättade nog en hel del. När man väl har lärt sig grunderna blir databladen mycket lättare att förstå sig på, och samtidigt även mycket mer användbara.
tack för länken!!
den är JÄTTE bra!
bara två frågor angående programet nedan...
fråga 1: om "labeln" start ska stå först i programet, kan den då stå på samma rad som (i detta fallet) "wovlw"?
fråga 2: efter som det inte fins nån "pause" funktion i detta prog.et borde det ju blinka en gång värje millisekund?
_______________________________________________________
edit: en fråga till kan man "räkna" om HEX tal till Binära tal???

bara två frågor angående programet nedan...
fråga 1: om "labeln" start ska stå först i programet, kan den då stå på samma rad som (i detta fallet) "wovlw"?
fråga 2: efter som det inte fins nån "pause" funktion i detta prog.et borde det ju blinka en gång värje millisekund?
_______________________________________________________
Kod: Markera allt
bsf 03h,5
movlw 00h
movwf 85h
bcf 03h,5
Start movlw 02h
movwf 05h
movlw 00h
movwf 05h
goto Start
En label får en adress när assemblern kommer till den. Den ska stå före en instruktion, mellan dom, ha en kommentar efter eller vad du vill.
Jag brukar ofta göra någonting såhär:
Hex2Dec ; Här omvandlas en Hex sträng till ett tal
...
...
...
osv
Då ser man vad som händer. Är det bara ett "internt" label i en rutin är det sällan jag kommenterar det på så vis.
Jag brukar ofta göra någonting såhär:
Hex2Dec ; Här omvandlas en Hex sträng till ett tal
...
...
...
osv
Då ser man vad som händer. Är det bara ett "internt" label i en rutin är det sällan jag kommenterar det på så vis.
"edit: en fråga till kan man "räkna" om HEX tal till Binära tal???"
Ja det är däsför amn använder HEX. en siffra HEX motsvara fyra binära.
Ja det är däsför amn använder HEX. en siffra HEX motsvara fyra binära.
Kod: Markera allt
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
A 1010
B 1011
C 1100
D 1101
E 1110
F 1111