Jump to content
Sign in to follow this  
TimV

Documentation

Recommended Posts

Hi:

 

Is the help file in the Basic compiler the extent of the documentation for BoostBasic?

 

I am not all that familiar with Visual Basic and I see no references to keywords that I am familiar with such as Gosub / Return, Pulsout, Peek, Poke, Lookup, etc.

 

I am migrating from the PicAxe which has a 100+ page manual dedicated to keywords with syntax and usage laid out fairly well.

 

I have read through the examples on the main web site and while I think I can get my head around how things are being done I'm wondering if there might be other resource material that might help.

 

Thanks in advance

 

Tim

Share this post


Link to post
Share on other sites

Tim,

Is the help file in the Basic compiler the extent of the documentation for BoostBasic? 
Yes I'm afraid thats it. Its not a complete language reference :)

Its worth looking at general VB documentation for this.

 

I am not all that familiar with Visual Basic and I see no references to keywords that I am familiar with such as Gosub / Return, Pulsout, Peek, Poke, Lookup, etc.

 

I am migrating from the PicAxe which has a 100+ page manual dedicated to keywords with syntax and usage laid out fairly well.

BoostBasic is a structure language along the lines of Microsoft Visual Basic.

For gosub use call and for peek and poke use "portb = 1" of "if portb = 5 then".

 

I guess that Pulsout is a library function - but what does it do?

 

 

Regards

Dave

Share this post


Link to post
Share on other sites

Hi Dave:

 

Thanks for the response. Ok.....Not what I was hoping for, but I am up for a challenge. For reference, Pulsout is simply a command in the PicAxe library that lets you pick a pin and send a single pulse (high) out that pin for things like clocking.

 

If you have a couple of minutes, maybe you wouldn't mind helping me get started.

 

In studying the sample code for the I2C, I can see how it is being done in BoostBasic so I'm not all that worried. (Pulsout)

 

In the C code examples, I notice #include and #pragma to set up config bits, etc. The BoostBasic samples do not have these. Where might I find more info on these and / or other #xxxxxxx settings?

 

In the include directory, there is a P16f88.h file and in the include\basic directory there is a Pic16F88.bas file as well as a BoostBasicPic16.bas.

 

Should I be #include(ing) these files? If so, what is the syntax?

#include "c:\program files\boostbasic\include\basic\Pic16F88.bas returns an error on compile.

 

I am working on converting a routine that I built which uses a Max7219 display driver for four 7Segment displays. I chose this as I am very familiar with the data sheet and with using this chip in the Pic environment.

 

In my current (very limited) code, I have the following:

 

' PicAxe 28x conversion to BoostBasic

' PicAxe 28X = PicMicro 16F873A

' Digital Temperature Display using LM335

' Max 7219 Display driver

' Tim Vukman

 

'control level outputs

'%%%%%%%%%% Initialize 7219 %%%%%%%%%%

'Sub 7219_INIT()

'output pin 6 pulse to indicate data sent

'output pin 7 carries data

'output pin 5 pulse to clock data loaded

 

'max7219 registers

Dim decode_address as Byte

Dim decode_data as Byte

Dim intensity_address as Byte

Dim intensity_data as Byte

Dim scan_limit_address as Byte

Dim scan_limit_data as Byte

Dim shutdown_address as Byte

Dim shutdown_data as Byte

Dim display_test_address as Byte

Dim display_test as Byte

Dim display_blank as Byte

 

'INITIALIZE_7219 'gets the MAX7219 display driver ready for use

Call Send_Data_7219

decode_data = $FF 'code b decode all digits

Call SEND_DATA_7219

intensity_address = $0A

intensity_data = $0F 'set digits full bright

Call SEND_DATA_7219

scan_limit_address = $0B

scan_limit_data = $03 'set number of digits to 4

Call SEND_DATA_7219

display_test_address = $0F

display_test = $01 'turn on all digits

Call SEND_DATA_7219

display_test_address = $0F

display_test = $00 'turn off all digits

Call SEND_DATA_7219

shutdown_address = $0C

shutdown_data = $01 'place MAX7219 into normal opertation mode

Call SEND_DATA_7219

 

The compiler gives me an error (exit code 1) on line 25 which is the last of the Dim statements before the Initialize_7219 code. I see no reason why it would fail there. How do I know what the reason for the error is?

 

Prior to this current error, the compiler would exit code 1 on the line which is:

decode_data = $FF. Again, I don't know why or what the error is.

 

Your time and advice would both be very much appreciated.

 

Regards,

 

Tim

Share this post


Link to post
Share on other sites
If you have a couple of minutes, maybe you wouldn't mind helping me get started.

 

In the C code examples, I notice #include and #pragma to set up config bits, etc.  The BoostBasic samples do not have these.  Where might I find more info on these and / or other #xxxxxxx settings?

 

use #pragma (as per the BoostC compiler), eg:

#pragma DATA     _CONFIG,  _WDT_OFF & _HS_OSC & _LVP_OFF & _CP_OFF & _PWRTE_OFF

 

In the include directory, there is a P16f88.h file and in the include\basic directory there is a Pic16F88.bas file as well as a BoostBasicPic16.bas.

 

Should I be #include(ing) these files?  If so, what is the syntax?

#include "c:\program files\boostbasic\include\basic\Pic16F88.bas returns an error on compile.

The required include file for the selected target device is included automatically, so you don't need to worry.

 

I am working on converting a routine that I built which uses a Max7219 display driver for four 7Segment displays.  I chose this as I am very familiar with the data sheet and with using this chip in the Pic environment.

 

In my current (very limited) code, I have the following:

 

' PicAxe 28x conversion to BoostBasic

' PicAxe 28X = PicMicro 16F873A

' Digital Temperature Display using LM335

' Max 7219 Display driver

' Tim Vukman

 

'control level outputs

'%%%%%%%%%% Initialize 7219 %%%%%%%%%%

'Sub 7219_INIT()

'output pin 6 pulse to indicate data sent

'output pin 7 carries data

'output pin 5 pulse to clock data loaded

 

'max7219 registers

Dim decode_address as Byte

Dim decode_data as Byte

Dim intensity_address as Byte

Dim intensity_data as Byte

Dim scan_limit_address as Byte

Dim scan_limit_data as Byte

Dim shutdown_address as Byte

Dim shutdown_data as Byte

Dim display_test_address as Byte

Dim display_test as Byte

Dim display_blank as Byte

 

'INITIALIZE_7219  'gets the MAX7219 display driver ready for use

Call Send_Data_7219

decode_data = $FF  'code b decode all digits

Call SEND_DATA_7219

intensity_address = $0A

intensity_data = $0F  'set digits full bright

Call SEND_DATA_7219

scan_limit_address = $0B

scan_limit_data = $03  'set number of digits to 4

Call SEND_DATA_7219

display_test_address = $0F

display_test = $01  'turn on all digits

Call SEND_DATA_7219

display_test_address = $0F

display_test = $00  'turn off all digits

Call SEND_DATA_7219

shutdown_address = $0C

shutdown_data = $01  'place MAX7219 into normal opertation mode

Call SEND_DATA_7219

 

The compiler gives me an error (exit code 1) on line 25 which is the last of the Dim statements before the Initialize_7219 code.  I see no reason why it would fail there.  How do I know what the reason for the error is?

 

Prior to this current error, the compiler would exit code 1 on the line which is:

decode_data = $FF.  Again, I don't know why or what the error is.

Use &FF instead of $FF.

 

Regards

Dave

Share this post


Link to post
Share on other sites

Thanks Dave

 

use #pragma (as per the BoostC compiler), eg:

#pragma DATA     _CONFIG,  _WDT_OFF & _HS_OSC & _LVP_OFF & _CP_OFF & _PWRTE_OFF

 

I tried this in my code earlier and it failed but I might have had the #include statement in at the same time. I just tried it and the compiler did not object.

 

 

The required include file for the selected target device is included automatically, so you don't need to worry.

 

Thanks

 

Use &FF instead of $FF.

 

Does this mean "&" denotes a hex value? Is there a similar special symbol for binary and decimal?

 

Thanks

 

Tim

Share this post


Link to post
Share on other sites

Hi Dave:

 

I changed all my $ hex symbols to &, but after saving the file, the compiler exits on

#pragma DATA     _CONFIG,  _WDT_OFF & _HS_OSC & _LVP_OFF & _CP_OFF & _PWRTE_OFF

with exit code 1 as it did before. It clears with the line commented out.

 

In the samples that I was reading, the comments were all in green. In the editor settings on my installation, both line comment and comment are set to show green as the foreground as well. They are showing in the same brown that is used for character in all locations where I have comments. The #pragma line above is also showing in the brown character colour.

 

With the #pragma line out, the compiler fails on the last Dim statement. If I rem out each Dim from the bottom up, the compiler fails on the last Dim line left. If I rem out all of them, the compiler fails on the next line and so on.

 

I copied the file into the workspace when I started this. Is it possible I did something wrong in creating the workspace? In the Project list I have quick, new and open. Wizard is not selectable.

 

Something appears to be seriously wrong here.

 

I opened the sample LCD file which I downloaded from the web site and it compiles with no errors. It even adds the lcdbaslib.bas file to the program file.

 

I am officially stuck!

 

Ok, maybe not completely stuck. I have created a new project and I have typed in some Dim statements and the compiler passes.

 

If I add this

Dim Decode_address as byte
Decode_address = &FF

 

the compiler fails. If I comment out the 2nd line, the compiler passes. What's wrong with the second line?

 

Thanks

 

Tim

Share this post


Link to post
Share on other sites

Tim,

If I add this

CODEDim Decode_address as byte

Decode_address = &FF

 

the compiler fails. If I comment out the 2nd line, the compiler passes. What's wrong with the second line?

&H (I forgot the H) seems to be broken (um maybe it never worked).

Use 0xFF.

 

Regards

Dave

Share this post


Link to post
Share on other sites

Hi Dave:

 

&H (I forgot the H) seems to be broken (um maybe it never worked).

Use 0xFF.

 

I shall try that when I get home.

 

Since the Max_7219 uses a 16 bit word, could I not just combine the address and data that I want to send and pass the whole thing? It would end up being 0AFF in this case. Would it be better to send that, or break it into two bytes as I currently do?

 

Thanks

 

Tim

Share this post


Link to post
Share on other sites
Since the Max_7219 uses a 16 bit word, could I not just combine the address and data that I want to send and pass the whole thing?  It would end up being 0AFF in this case.  Would it be better to send that, or break it into two bytes as I currently do?
You could do this and make the data a Word instead Byte.

 

Regards

Dave

Share this post


Link to post
Share on other sites

Hi Dave:

 

I am up and coding. The #pragma worked once I took out the spaces between the &'s. What can I say? I picked up some documentation for C from the Microchip site and that's how it was written.

 

All my Dim's pass as do all the data variables using 0x to denote hex. I am now working on the output routine for the 7219

 

Thanks for your help.

 

No doubt I will be posting again soon. :)

 

Tim

Share this post


Link to post
Share on other sites

Your content will need to be approved by a moderator

Guest
You are commenting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×