CH Basic Flash Edition: Programma voor PIC's te proggen

Een paar dagen geleden heb ik de PIC (16F628) ontdekt ;) Ik vond het zo interessant dat ik er meer mee wil doen. Het is de bedoeling dat ik zelf eerst even een super simpel programma schrijf dat bijvoorbeeld een LED aan en uit doet. Ik weet dat ik uiteindelijk een *.HEX file moet hebben om in de PIC te proggen. Maar om het programma te maken heb ik dus een soort van programmeer programma nodig. Dit heb ik ook gevonden, namelijk HIER: CH Basic | Flash Edition Het is geheel gratis en ziet er niet al te moeilijk uit. Er zijn veel voorbeeld files te vinden, en het aansturen van LCD is ook mogelijk ermee. Alles lijkt perfect tot nu toe. Dit staat in de help file van het programma:

This is the last step before saving to file. If this step is successful then the basic program is syntactically correct. The corresponding .asm file is complete only after this operation and can be saved to file, which can then be imported into MPLAB or MPASM for assembly and programming the PIC.
The following is checked:

- whether the number of FOR statements is the sam as the number of NEXT statements
- whether the number of IF statements is the same as the number of ENDIF statements
- whether a target label exists for every GOTO and GOSUB instruction
- whether there are duplicate labels
- whether there are errors in the basic code
- whether the data and/or program memory are full.
- sets the correct bank. This part of the compilation process performs optimization and takes the longest time to execute. The execution progress is displayed on the progress bar.

All occurrences of the above errors will be signaled.

When a file with the .asm extension is loaded into Microchip's MPASM, the PIC type needs to be set. The code is case insensitive.

Maar het grote probleem is dat ik helemaal geen *.ASM file eruit krijg. Wat ik ook probeer. Ik heb zelfs een voorbeeld van hun zelf geopend en gecompiled, maar ik krijg maar niet die *.ASM erbij. Deze file heb ik echter wel nodig om uiteindelijk mijn *.HEX te krijgen. Want met "Microchip MPLAB IDE" van Microchip zelf moet ik die *.ASM converteren naar *.HEX

Iemand raad? Ik heb de hele middag zitten werken met het programma maar het is net alsof de demo versie geen *.ASM's maakt...

Ik zal het zo eens even snel proberen voor je. Maar grote kans dat de demo idd geen .asm of .hex aanmaakt.

Kijk trouwens ook ff hier op de site bij de microcontroller tutorial. Misschien interessant voor je.

Ehm, misschien ligt het aan mij, maar zo een beperking staat meestal wel in een FAQ of handleiding van de desbetreffende software.

Dit stond er na heel kort te hebben gekeken in de FAQ:
"4. I have downloaded the Demo version. What are the limitations of this version ?

The Demo version is fully functional with all commands and have the following limitations:

- CH Basic Bronze: limited to maximum 20 lines of Basic code.

- CH Flash Basic: no limitations in Basic length, but after compilation you don’t get the assembly file (.ASM). Yet, you can see assembly inside the compiler. You can of course save the Basic program."

Oftwel het klopt dat het niet lukt, daar is het een demo voor. Zoek even op internet naar de PIC basic compiler. Die werkt wel dacht ik gewoon.

/edit :)

lees dit ff http://www.celestialhorizons.com/compilers/FAQ_chbas.htm#B4
Bastiaan was net ff eerder

[Bericht gewijzigd door k.p.meinesz op ]

Vaag...ik heb die hele helpfile (plus een nieuwere versie van die help) helemaal doorgezocht, en daar staat dat de *.asm gewoon bij die andere file komt te staan. Maarja het zal wel gewoon de hulpfile zijn van de full version... Bedankt voor het opzoeken. Ik ga dan maar weer een ander programma proberen. Enne, die tutorial hier op de site is ook niet verkeerd ;) Zullen veel mensen wat aan hebben!!!

Klein vraagje:

Welk programma gebruiken jullie om de software voor de PIC's te schrijven? Ik vond die Basic Flash wel makkelijk omdat die een GUI heeft, maarja daar kan ik dus niets mee. Dus wat gebruiken jullie?

Op 25 januari 2003 19:38:40 schreef Atmoz:

Klein vraagje:

Welk programma gebruiken jullie om de software voor de PIC's te schrijven? Ik vond die Basic Flash wel makkelijk omdat die een GUI heeft, maarja daar kan ik dus niets mee. Dus wat gebruiken jullie?

Ik gebruik gewoon ASM met MPLAB van microchip

Op 25 januari 2003 19:41:38 schreef k.p.meinesz:

[...]

Ik gebruik gewoon ASM met MPLAB van microchip

Same for me.

Op 25 januari 2003 19:41:38 schreef k.p.meinesz:
Ik gebruik gewoon ASM met MPLAB van microchip

Hier ook. (Maar ik ga overstappen naar AVRs)

Op 25 januari 2003 23:31:46 schreef Tristan:
[...]
Hier ook. (Maar ik ga overstappen naar AVRs)

Dat heeft niks met de taal te maken :D

Ik doe trouwens Motorola, Microchip en Atmel tegelijk :)

Op 25 januari 2003 19:38:40 schreef Atmoz:

Klein vraagje:

Welk programma gebruiken jullie om de software voor de PIC's te schrijven? Ik vond die Basic Flash wel makkelijk omdat die een GUI heeft, maarja daar kan ik dus niets mee. Dus wat gebruiken jullie?

ik gebruik het progamma jal command center. Hier mee programeer je in jal. Ik vind het echt een hele fijne taal, zeker om mee te beginnen. het is een taal die heel veel op het engels lijkt en dus heel makkelijk te begrijpen in tegen stelling tot asm waar heel veel woorden in te staan die nergens op lijken.

Op 26 januari 2003 10:18:01 schreef Wouter SSijm:
[...]
Het is een taal die heel veel op het engels lijkt en dus heel makkelijk te begrijpen in tegen stelling tot asm waar heel veel woorden in te staan die nergens op lijken.

De woorden in asm lijken zeker wel ergens op. MOVWF staat voor Move van W naar F, makkelijker kan niet :)

Op 26 januari 2003 15:51:11 schreef Bastiaan:

[...]

De woorden in asm lijken zeker wel ergens op. MOVWF staat voor Move van W naar F, makkelijker kan niet :)

daar heb je idd wel gelijk in (sorry voor alle asm liefhebbers die ik bij mijn vorige post heb beledigd :o), maar ik ben toch van mening dat je als je begint beter met jal kan beginnen dan met asm.

Op 26 januari 2003 16:17:22 schreef Wouter SSijm:

[...]

daar heb je idd wel gelijk in (sorry voor alle asm liefhebbers die ik bij mijn vorige post heb beledigd :o), maar ik ben toch van mening dat je als je begint beter met jal kan beginnen dan met asm.

het kan daarna wel moeilijker zijn om met ASM te beginnen
en vaak hebben deze compilers wel een nadeel:
ze maken gebruik van standaart routines bv IF THEN
dit word door zo'n compiler vertaalt naar asm


IF=  movfw
     sublw
then btfsc status,2
     goto x ;waar
     goto y ;niet waar

maar hierbij ontstaan soms wel een beetje te grote routines

Op 26 januari 2003 16:17:22 schreef Wouter SSijm:
[...]
ik ben toch van mening dat je als je begint beter met jal kan beginnen dan met asm.

Dat klopt, daar ben ik het ook mee eens.

Op 26 januari 2003 16:35:29 schreef k.p.meinesz:

[...]

het kan daarna wel moeilijker zijn om met ASM te beginnen
en vaak hebben deze compilers wel een nadeel:
ze maken gebruik van standaart routines bv IF THEN
dit word door zo'n compiler vertaalt naar asm


IF=  movfw
     sublw
then btfsc status,2
     goto x ;waar
     goto y ;niet waar

maar hierbij ontstaan soms wel een beetje te grote routines

ja dat heb ik dus gemerkt bij mijn klok die was eerst maar liefst 9k toen ik hem gecompileerd had. Gelukkig is hij nu een stuk kleiner

Op 26 januari 2003 17:17:55 schreef Wouter SSijm:

[...]

ja dat heb ik dus gemerkt bij mijn klok die was eerst maar liefst 9k toen ik hem gecompileerd had. Gelukkig is hij nu een stuk kleiner

Hoe heb je hem kleiner gekregen?

Op 26 januari 2003 17:35:54 schreef k.p.meinesz:

[...]

Hoe heb je hem kleiner gekregen?

ik kwam er achter dat ik wat overbodige dingen had. b.v. dat het led display voor alle digits tot 9 gingen en dat hoeft bij de 2e digit niet deze hoeft maar tot de 5.

effe of-topic: weet iemand misschien waar ik een asm of hex naar jal converter kan downloaden?

Op 26 januari 2003 17:49:37 schreef Wouter SSijm:
[...]
ik kwam er achter dat ik wat overbodige dingen had. b.v. dat het led display voor alle digits tot 9 gingen en dat hoeft bij de 2e digit niet deze hoeft maar tot de 5.

effe of-topic: weet iemand misschien waar ik een asm of hex naar jal converter kan downloaden?

Die bestaat naar mijn weten niet. En als die bestaat dan is dat alleen op die page van JAL zelf. Dus moet je daar ff kijken.

Denk nou niet dat het makkelijk is, want de meest vreemde combinaties van de JAL taal kunnen worden geschapen aan de hand van machine code (of asm), en er staan geen commentaar regels in.

Ik heb nu ook dat JAL command center. Ziet er ook erg leuk uit enzo, maar als ik een heel simpel programma wil maken bijvoorbeeld LED aan/uit/aan/uit/etc... met de 16F628 dan lukt dat niet, want er staat steeds 16F84 onderaan en links in dat venster. Ik heb wel geprobeerd andere lips en glips en hoe heten ze allemaal eraan toe te voegen maatr wat werkte niet. Dus eigenlijk moet ik weten welke files en dingen in dat venster moeten staan links om een PIC 16F628 te proggen. Weet iemand dat uit het hoofd? Want ik heb effe een *.JAL (voorbeeld voor een 16F84) gecomiled naar *.HEX en die in de 16F628 gezet maar dat werkte niet ...

Op 27 januari 2003 14:21:36 schreef Atmoz:

Ik heb nu ook dat JAL command center. Ziet er ook erg leuk uit enzo, maar als ik een heel simpel programma wil maken bijvoorbeeld LED aan/uit/aan/uit/etc... met de 16F628 dan lukt dat niet, want er staat steeds 16F84 onderaan en links in dat venster. Ik heb wel geprobeerd andere lips en glips en hoe heten ze allemaal eraan toe te voegen maatr wat werkte niet. Dus eigenlijk moet ik weten welke files en dingen in dat venster moeten staan links om een PIC 16F628 te proggen. Weet iemand dat uit het hoofd? Want ik heb effe een *.JAL (voorbeeld voor een 16F84) gecomiled naar *.HEX en die in de 16F628 gezet maar dat werkte niet ...

dan moet je de regel include 16f84 vervangen door include 16f628. Dan doet hij het als het goed is wel :)

Op 27 januari 2003 15:37:49 schreef Wouter SSijm:

[...]

dan moet je de regel include 16f84 vervangen door include 16f628. Dan doet hij het als het goed is wel :)

Dat had ik al geprobeerd. Het ziet er nu zo uit: http://members.home.nl/asd2/JALcc_luktniet.jpg

Maar volgens mij moet daar links onder jpic toch 16F628_4 staan in plaats van 16F84_10 ??? Maar dat krijg ik daar niet te staan. Weet iemand wat er moet staan daar links allemaal als ik deze code wil maken als *.JAL bestand:

--
-- name : e0001.jal
-- author : Wouter van Ooijen
-- date : 21-Sep-1998
-- purpose : jal example
--
-- This program flashes a LED on pin A0

-- target configuration: 16f84 with 10 Mhz Xtal
include 16f84_10

-- standard library
include jlib

-- configure pin A0 as output
pin_a0_direction = output

-- endless loop
forever loop

-- LED on
pin_a0 = on

-- wait a second
delay_1s

-- LED off
pin_a0 = off

-- wait 1 second again
delay_1s

-- repeat ad infinitum
end loop

Maar dan wel alle 16F84 vervangen door 16F628...

Het enigste wat ik wil is een LED laten knipperen op een 16F628. Dat moet toch wel lukken denk ik, want dat programma is zeker fijn als het werkt lijkt me (het werkt ook wel, maar alleen effe bij mij niet ;)..) Dus wie helpt me alweer? :+

Op 27 januari 2003 18:37:47 schreef Atmoz:

[...]

Dat had ik al geprobeerd. Het ziet er nu zo uit: http://members.home.nl/asd2/JALcc_luktniet.jpg

Maar volgens mij moet daar links onder jpic toch 16F628_4 staan in plaats van 16F84_10 ??? Maar dat krijg ik daar niet te staan. Weet iemand wat er moet staan daar links allemaal als ik deze code wil maken als *.JAL bestand:

[...]

Maar dan wel alle 16F84 vervangen door 16F628...

Het enigste wat ik wil is een LED laten knipperen op een 16F628. Dat moet toch wel lukken denk ik, want dat programma is zeker fijn als het werkt lijkt me (het werkt ook wel, maar alleen effe bij mij niet ;)..) Dus wie helpt me alweer? :+

ik denk dat hij zo wel moet lukken er staat ook nog commentaar bij


 include 16f628_10
 include jlib
; standaard bibliotheken
 pin_a0_direction = output
 ; pin_a0 als uitgang instellen
 forever loop
 ; eideloze lus, kan bijvoorbeeld ook vervangen worden 
 ; door: for 20 loop dan doet hij hem maar 20 keer

 pin_a0 = high
 ; pin_a0 hoog maken
 delay_2s ( 1 )
 ;een seconden wachten
 pin_a0 = low
 ;pin_a0 laag maken
 delay_2s ( 1 )
 ; wacht weer een seconde
 end loop

als je hem op een kristal van 10mh wilt laten draaien moet je ff include 16f628_10 vervangen door include 16f628_4

[Bericht gewijzigd door Bastiaan op ]

Is er misschien een NL versie van al die JAL help/uitleg files te krijgen? Ik snap er niet veel van...
Steeds springt die 16F84_10 weer erin. Ik hoef dat woord eigenlijk nooit meer te zien want ik heb die chip niet eens thuis. Zelfs een LED laten knipperen lukt niet. Allemaal die Jlips en Jpic enzo....een NL handleiding of iets dergelijks zou echt fijn zijn... Of een tutorial:

1) installeer JALcc
2) maak een nieuw project
3) type dit en dat
4) compile
5) laad *.asm file in MPASMWIN
6) convert naar *.hex
7) program met icprog104C

Dat zou echt perfect zijn. Ook voor mensen zoals mij die nog niets van JAL snappen. Want ik zou ook graag net zoals jullie zelf leuke (kleine) programmatjes in PIC's willen zetten.

[edit]
oke thanx wouter, ik ga nog eens wat proberen
[/edit]

Je kan toch wel engels. JAL bevat een uitgebreide handleiding in het engels.

En die 16F84 zal wel telkens terugkomen omdat die in 1 van de include files ook staat waarschijnlijk.