Thanks Gabi,
I have picked up a Goertzel-based code that I had written a few years ago and that I never finished the project.
I have seen your code is to detect DTMF tones.
I have written...
Type: Posts; User: AlbertoFS
Thanks Gabi,
I have picked up a Goertzel-based code that I had written a few years ago and that I never finished the project.
I have seen your code is to detect DTMF tones.
I have written...
Hi all,
I am using the file FTT_Tone_Decoder.bas. And I need that the FTT could start at 390 Hz (more or less) instead of 0 Hz. How could it be done?
Thank you
Thank you all,
@Bob
Thanks for the info.
@Les
Thanks for your code and examples. I hope I can make good use of them.
@John
My project is to detect the audio from the receiver (CW Tone) to...
Hi all,
A few years ago Les wrote an "FFT_Tone_Decoder" code for the Amicus board and an LCD.
I would like to make a project to visualize a frequency band between 275Hz and 925Hz with 5 LED...
Hi all,
I would to program the PIC16F1825.
The VPP tension is different (9V) then can I use the ICD3 or the PicKit3 programmers?
Thank you for information
Alberto
P.S.
Everything is correct...
Thank you very much for spending your precious time answering my questions.
I don't know if I explained myself well. I can perform this function with the Preprocessor (copy & paste), it would be...
Hi Les,
Sometimes we may need to read some parameters of the generated ASM file, such as DEVID1, DEVID2, IDLOC0, _MaxRAM, _MaxMem, Bank0_Start, Bank1_Start, any parameters.
It would be possible to...
Les, thank you very much for these infos.
I am very aware that the declaration of variables outside the procedure are global and dangerous. But I do it carefully and only use them at the lowest...
Hi George,
Maybe you are confusing internal variables in a Procedure with local variables.
I start from the definition that if 2 routines use variables with different names but in the end they are...
It's even easier when I use my library of Local Variables <DeclareLocalVars.inc> as follows.
So I will not have to modify the more complex asm macros.
Macro in assembler:
'/ Declare some Local...
I am trying to modify all my libraries made with preprocessor and assembler.
And it doesn't seem so obvious. The macros in assembler have a lot of versatility combining with the preprocessor.
Les,...
I have acquired a new PCB design program. And to prove it in a difficult case, I designed a WinKeyer shield for the Amicus18 development board.
But this program is so simple that it does not...
Thanks Craig for running the file.
I have only tried to pass the input variables to subroutines, nothing more. I will have to review some Gosub that could cause problems. Surely there is an error...
Hi Amod,
You can see in the WIKI.
Regards
Alberto
Hi Craig, Thanks for trying this code. I have recompiled all the examples with the PDS version 3724. Regards. Alberto
Thank you Les for your comments. I have spent a lot of time tuning the code. I have written this project so that PDS users can use it and especially adapt and / or improve it.
In my next stage I...
Hi all,
After a job of many months I have finished a CW Keyer project for the Amicus18 board. I suppose this project has overflowed with my initial expectations. The code is some complex, however I...
AlbertoFS has just uploaded EA3AGV CW Win Keyer V1.0!
Enjoy this proyect.
Alberto
I have reviewed the SD_File_System in a file.inc only checking all macros using the preprocessor too. I have tried to make the commands easier to read and write. I need a beta tester to test the code...
Hola Gamboa,
So far I have not used the Procedures because I am using the preprocessor and the asm macros so they allow me to manipulate the code better. But I do not see any flaw in this...
I have sent an e-mail to Abacom and it is not possible.
Hi all,
Could the Sprint-Layout software import a net-list to perform the test of the tracks?
Thanks for any information.
Alberto
You can find a good random code in my library HERE, in the Random folder.
Thank you George.
Hi all,
I am writing a code to detect an audio tone using Goertzel's algorithm. Since the code is very big, I would like to find solutions to reduce the lines of code. I have this formula written...
19/10/2018
Added a new code for VarToStrg() Macro.
Added new macros: CWBeacon_Init() / CWBeacon_Send() / CWWait_Buttons()
With these macros and a few lines of code, the PDS user can built a Ham CW...
10/10/2018
Added new macros: ReadTSensorTSH(), VarToStrg() & Update ConvToFloat() for negative numbers.
There are more than 35 macros available.
Regards
Alberto
I had same problem writing a preprocessor macro.
Alberto
John,
I have made some tests:
(1) Dividend(+) / Divisor(+) = Result(+) => Remainder(+), Decimals(+)
(2) Dividend(-) / Divisor(+) = Result(-) => Remainder(+), Decimals(+)
(3) Dividend(+) /...
Hi George,
It seemed obvious. I have not seen the tree in the forest. So why the Remainder is not negative when the result of the division is negative?
Thank you very much.
Regards
Alberto
Hi George & Bob,
George is right, I have to give an example to understand all the possibilities.
After performing some calculations with integer positive variables, I wanted to give the same...
The problem has been to pass the decimals to a negative float variable. But the problem is solved and the macro works very well.:smile:
See the code HERE.
04/10/2018:Version 1.4 Fixed some erratas with the preprocessor.
Add new macros: MeasurePeriod(), MeasureTime(), HRSOut_RCON(), ConvToFloat().
You can find more than 31 macros in this library....
Exactly this works very well. My question was how to pass the variables not signed and signed by the macro. The conversion is for 2 variables: Result & Decimals. I have seen that the variables must...
Hi all,
I have searched the manual and I have not found a command that converts integer variables (Whole number & decimals) to a variable Float.
Then I have written a macro for this function. Now...
I have been this problem for several weeks. PICKit 3 stopped working with the MPLAB_IPE for an unknown reason.
I have applied the akhil solution (see Post # 7) and it has worked perfectly.
Thanks...
Les,
Thank you very much for adding this solution. So this will be a great improvement for PDS users. I already have the code written to manage all the RCON bits at the start of the PIC.
I am...
Hi Les,
In case of debug I wanted to know the all status of the bits of RCON register and mostly the TO bit (watchdog status). As the compiler is configured, it can not be done because the clrwdt...
21/09/2018 Fixed an errata with __KEYPAD_PORT.
Regards
The N-Bits BCD Maths has been published HERE.
N-Bit Maths with BCD arrays:
Hi all,
I have written some codes allowing very large calculations with some unpacked integer BCD arrays.
It has been a lot of work because I do not know much about...
Hi George,
Yes, you have remembered it well. The n-bit Mats has been written by Darrel Taylor. This code used binary arrays and was written in assembler.
For the n-bit BCD Maths, I have used BCD...
Well, I have managed, after a lot of work, to write a new code that allows a division of 20 Bytes / 1 Byte or 64 Bits / 8 Bits in 6.5 mS with the FOSC of 64Mhz. I think it's very acceptable.
BCD...
Thank you very much to all. I'm still programming the PICs. The PDS is the medicine that allows me to have my brain active.
Alberto
Hi all,
I have written & finished to check some maths for unpacked BCD arrays for very very large numbers that I will publish soon in the wiki.
The division that I made with reiterations of...
Hi Joseph,
I think it is 4mS for K series. Then 4 x 32 = 128 mS.
If writing on the eeprom is not repetitive, it could be done by interruption when the program does other important things.
I wrote...
Hi Tim,
You probably have the wrong thread. I do not think I wrote this in this library.
Please, Could you specify in which case?
Regards
This article is based on an idea and code by Darrel Taylor. How much code space do our routines have? We can find out with some MPASM directives. And much more... Read the article HERE.
Alberto
AlbertoFS has just uploaded How much code space our routines have?!
Please read the article HERE.
Last week the web was blocked sometimes and now I get malware.
Firefox 64 bits V61.0.1
Alberto
Hi Teo,
You could use my project HERE.
I am going to review the code for the PIC18Fxx20 family and with 8 displays, I could help you in this matter.
Regards
Alberto
Yes, after the Declare statements. See the example in Eight7SegDisplay.BAS.
Include "MultiplexB8Digits_lib.inc"
Alberto
Joseph, do not worry. The code is not always obvious. As I have a way to write the code that is not compatible with the PIC16.
Amod,
For positive values, you can use the project: EightDisplaysV3,...
Admod,
I write my projects only for PIC18 and they are not compliant with PIC16. A good change would be to use a PIC18F25K22. Tell me your needs and I will be able to verify it.
Regards
Hi Joseph,
YES, the project with keypad includes Float, Signed, Integer numbers & Strings.
Into the Doc folder I included a manual of the project.
Regards
Alberto
George, thanks for the information. Nothing happens to me of all that you tell me and then I do not know how I can fix it. I see no alternative but to mount a real prototype for the Amicus Board for...
Hi all,
In case if I had wrong in version I upload again a new code.
Regards
Alberto
I have found my problem. It seems to be a path problem for Proteus. Then I have installed the version of PDS 3.6.1.7 on the main machine and everything works correctly with the Proteus 8.2 SP0....
Hi George,
I have the PDS version 3.6.1.7 on another computer and I have compiled the project with another name.
Returning to my original machine the Proteus V8.2 SP0 does not work if point on the...
NEW PROJECT:
Code for driving 3 to 8 seven segments display with KEYPAD.
Enjoy the code. See the article HERE.
Regards
Alberto
I have thought that adding 4 resistors I could insert a keyboard with 12 to 32 keys. This has not occurred to me before because it must be for my age now. Some ideas come too slowly.
The software,...
I think this has been discussed in the forum before. According to the PIC family, there are some problems for loading the counter. I always apply this technique and I never have problems.
Take into...
07/04/2018 New version 1.1 of library for 3 to 8 seven segment displays.
Minor modifications to make the code faster.
See the project HERE.
Regards
Alberto
Really all the information is in the Hitachi HD44780 LCD datasheet.
First of all, have you written the correct declares of the LCD? See page 146 of the PDS manual.
It is also necessary to see how a...
Hi Yves,
It is a bootloader for UART. You can use any USB/UART interface such as the Amicus18 Board. The code has been developed 100% on the Amicus18 board. The complexity of this code is because...
New library for 3 to 8 seven segment displays
(The definitive solution)
Hi all,
Thanks to the wonderful features of the PDS compiler, I was able to finish this project with a new library,...
You can find an example HERE. The LCD display is not the same but it is very compatible. Search the routine that allows you to print 1 line.
Regards
Alberto
06/28/2018 update:
I added a macro to input all variables for the library. It is more easy for the code user. (version 3.0)
Very Soon: New library to print Integer, Signed and Float variables to...
Thank you Joseph, Teo & Charlie,
Only I try to occupy my brain, if it can be useful for the PDS users.
22/06/2018 Update code for driving 8 displays with one PORT only with the help of a simple...
Code for Driving 2 to 8 seven segment displays
20/06/2018 Update code for driving 8 displays for integer values.
Enjoy the code. See the article HERE.
Alberto
Hi amod and Simon,
You can find a new template to use 8 displays (7 displays + sign) in the WIKI.
Regards
Alberto
Code for Driving 2 to 7 seven segment displays + sign
19/06/2018 Update code for driving 7 displays + sign. (total 8 displays)
Enjoy the code. See the article HERE.
Alberto
Hi amod and Simon,
After some headache, I was able to finish the code to print negative numbers from -99999 to +99999, occupying 6 digits. In this way one digit is lost.
How many digits do you...
Hi amod and Simon,
I am working to send negative numbers on the display. I have managed to show -99 to +99 already. I have to modify the structure of my program. What forces me to lose a digit or I...
Code for Driving 2 to 6 seven segment displays
Thank you very much John to publish the article.
Now the code is prepared for 6 digits.
See the article HERE.
Regards
Alberto
Hi John,
I have written this code quickly to help a PDS user. I have already found new tricks to increase the speed and efficiency of the program. I could write an article for the end of this week....
Hi all,
I have recovered from the forum background a code to drive 4 seven segments displays, because there seems to be some interest in project of this type at this time.
You can configure all...
AlbertoFS has just uploaded Driving 2,3 or 4 seven segment displays.!
I have recovered from the forum background a code to drive 4 seven segments displays.
Surely the code had been written by...
Hi George,
Everything is possible. I downloaded the file and unzipped it. I have not found anything forgotten.
There are 3 subfolders:
Dev_18F23K20_18F46K20
Dev_18F23K22_18F46K22...
Hi Yves,
You could use my PDS bootloader running with a terminal program or the DS30 booloader running with a PC application. I do not have the hex file for the 26K22.
Regards
Alberto
You're right "messg" directive does not work for that. But the message appears in the .lst & asm files. What could be useful for me to search the macros in the asm file.
Thanks for remembering this...
Hi George,
To make simple macros it is better to use the processor. For more complicated macros I use a mixed of the two systems. Everything depends on what you want to achieve.
Alberto
Thank you very much for the information, Les.
Families xxK40 and xxK42 are not easy and have complicated the lives of PDS users.
Thanks for your dedication.
Regards
Alberto
Hi George,
I have modified their ASM macros so that you have brackets to be the same as other macros written by the processor.
EUREKA ...
I found the problem !!!!
Change the [Declare...
Hi George,
I have copied a macro from your program to a new very short test program. As I had announced in post#2, it works perfectly.
I have been able to see in your file that the 2 macros are not...
Hi George,
I have compiled your macro with the PDS version 3.6.1.4 and I do not see anything strange in the compiled asm code.
I have tried to put their variables in Bank0 and I have left them in...
Hi George,
Please, you could read my article regarding my bootloader. It would be a good first step.
PDSloader
In particular my bootloader is written in Proton language, which allows the...
Hi all,
I would intend to create a new bootloader that will record only in the upper part of the ROM from a defined address to update the subroutines and many tables written in the ROM.
Would this...
Hi Charlie,
As George said the NVMCON1 register works different as standard because an errata. I published this in my bootloader 12 months ago.
' ROM memory has a new System To read/write.
' ...
I have extracted the code from my bootloader.
Device = 18F24K40
Declare Xtal = 64
'/ DEFINE THE PLL: On / OFF (not used with the Internal Oscillator).
$define PLL_ConfigFuses...
an example:
Before:
#Disable HRSOut ' Bypass the compiler's HRSOut library subroutine
'===============================================================================
GoTo...
Hi Charlie,
I sent you 2 PM's.
Alberto
Hi Charlie,
I have never had so many problems with the 2xK20 and 2xK22 families. All my libraries and projects have been written for these PICs. Could you send me your schematic, components list and...
Hi John,
The "HRSOut" was the label also for the asm routine that puts the byte into the UART buffer. I think it is better now to avoid confusing.
Alberto
In the new version of PDS 3.6.1.2 a lot of code has been modified such as the label of the HRSout routine.
Before: HRSout
Now: __hrsout1__
Take it into account in the replacement routine in my...
Charlie,
I do not just understand the problem with this chip. It could be that I do not understand the English language well.
According to the datasheet of the PIC18F24K20 it is identical to the...
This issue has been discussed previously in the forum. The compiler always writes a STOP after the last line of .bas code. So if you do not leave enough space in the ROM memory to write the While:...
I wrote a library for the PIC18FxxK40 series based on Les' code. It could be possible to use it for the K42 series. Just check the 2 datasheets and seee the differences.
PIC18FxxK40 PPS
Alberto
Hi Bob,
I have lost a bit of practice in Macros. I suppose that the routines are going to be used several times, You would have to make a mix of Preprocessor and Macro asm.
There are several...
I have discussed this topic several times in the forum. I had written a library to read the Strings in the Cdata tables. I have not studied the PIC24 and I did not write the procedures. But it can...
George,
Thank you very much for all infos.
I'll see the Explorer 8 Board that has the full options.
Regards
Alberto
Thanks George,
So if there is not a UART connection to the PC having a connector and a CPU that could do this function, this board is worth almost nothing. I have not seen the Xtal on the picture...
In the schematic the TARGET PROG connector is drawn. I do not see it in the printed circuit?????
Any comment?
Has anyone used this Microchip platform for PIC18?
Is it essential to use the MPLAB Xpress to program the PIC?
Can the USB port be used as PC connection => UART?
Thanks for the info.
Alberto
30/11/2017
I updated the Manual Part1 and I included a new manual Part2 of the PDS Bootloader.
New Version 5.0 of the PDS Bootloader
Note: Sorry, I have deleted all the files instead of making an edition.
Lester: I can upload only 10 files. I need to upload one more.
I have written a...
AlbertoFS has just uploaded Universal PIC18 Bootloader for PDS!
A new version 5.0 of the PDS Bootloader. It is more easy to use.
Hi George,
Indeed the compiler writes a STOP after the last line of code. Sometime it is a pain. Then you have to leave a space for this STOP, otherwise the compiler will give an error.
For...
Hi all,
I have tested with the PDS version 3.6.0.3 and the same thing happens.
Since this command has no subroutine, I do not know how to #Disable it. We would have to ask Les.
Sometimes, when...
Les, some time ago had added a new declare.
Declare Eeprom_Address = $310000 (value for K40 serie)
I would like this address to be reflected in the asm file.
Regards
Just write this table with your values in the end of the basic code.
Asm
__IDLOCS 0x200000,0xFF
__IDLOCS 0x200001,0xFF
__IDLOCS 0x200002,0xFF
__IDLOCS 0x200003,0xFF
__IDLOCS ...
Hi Les,
In the asm compiled file I can find information related to the addresses of DEVID1/IDLOC0/... in memory map.
config1h equ 0X300001
DEVID1 equ 0X3FFFFE
DEVID2 equ 0X3FFFFF
IDLOC0 equ...
I have been able to test the bootloader with the internal oscillator at 64Mhz with these parameters. I advise you to try the PIC18F47K40 with an external Xtal first and then you can connect to the...
Hi George,
I suppose you want to read/write some data?
As this is written in asm in the compiled file.
DEVID1 equ 0X3FFFFE
DEVID2 equ 0X3FFFFF
Then you could do it, maybe!
Asm
Movlw...
The program is written and prepared for the PIC18F27K40.
I will describe an example for the PIC18F27K40 with Xtal of 16Mhz + PLL + standard options.
- Device = 18F27K40
- Declare Xtal = 64
-...
What are your questions? you could describe your needs or options and I will explain.
For which bootloader the HSM or the LSM? Declare Xtal/PLL...
This week I'm working hard on improving the...
I installed the new version of CoolTerm and it works as badly as you say it.
However, if I change the extension file.hex to file.asc, then the file can be downloaded and it works fine. In my...
Hi George,
My town hall is: 41º 29' 27" N and 2º 08' 26" E, according to "Google Earth".
My QTH is JN11BL. It is are already set on the demonstration program.
Regards
Alberto
Hi Charlie,
It can be achieved with the help of a web translator and many hours of work and with the appreciated help of John Drew for the final correction.
Regards
Alberto
Hi all,
I am working on a new version of the bootloader to minimize the variation of the length of the file according to the PIC of the same family or for the new versions of the compiler. I have...
Hi david,
I'm back with a new internet connection.
Have you been able to run the terminal with the bootloader or have you been able to test the old version? I would like to have feedback to improve...
Hi George,
I have reassembled my hardware for the PIC18F4620. I was lucky to have a Xtal of 20Mhz. At first I had the same problem with the terminal because I had left the Xtal of 16Mhz. Could it be...
Hi George,
I have the version of CollTerm 1.46 Built 322. It is running without problem.
You must first establish the connection to the port by pressing "Connect". Only when there is a connection...
Hi George,
I am sorry, the Baud rate should be 57600 with a Xtal of 20 Mhz. The baud rate is automatic according to this code. I had in mind that the Xtal was 40Mhz. When these scribbles come out...
Hi Dave
After loaded the firmware into the PIC, you must do a first reset that should receive the letter "W" to the terminal, which means "Waiting for Reset". If the letter "E" comes out, it means...
You should not forget that the heading of your code should be this way and you copy the bootloader config fuses into your code.
Declare Xtal = 20
Declare Optimiser_Level = 2
...
Hi George,
I think everything is controlled. I found several problems.
- The PDS version 3603, when compiling produces 52 Bytes more. As the length of the bootloader is variable according to the...
Hi George,
I've already traveled back and I'm looking at the PIC18F4620 for a Xtal of 20Mhz for FOSC PIC = 20Mhz. Is it correct?
Regards
Alberto
In effect the PIC18F4550 is USB and I need a little more time to study the config fuses that will be defined in the bootloader. The bootloader should operate at 48Mhz loading the HEX from the UART....
Hi David,
you could test my configurable bootloader, it can be compiled with the PDS. There is no file prepared for this PIC, I could do it tonight because I'm going on a trip this morning.
The...
Hi Fanie,
I have bought 2 modules SX1278 (SX1276) LoRa from Modtronix Engineering for 12€ each. Freq = 433 Mhz 100mW.
I would like to make a library for this module. But I do not know when I start....
I use the system variables only for the libraries which allows faster access to them.
See these threads.
http://www.protonbasic.co.uk/showthread.php/65576-System-Variables post 5...
Thank you very much Les.
It is perfect that you have been able to find a better solution for your program. Anyway, I think this thread has been useful to understand how to use the pre-processor for Strings. This way to read...
You have to be careful in reading the strings. As the ROM is formatted in Words, if the string has a even number of characters the end will be 0 + 0 (binary). If the string has an odd number of...
Hi George,
Now I understand your need, although I do not fully understand their use, but this does not matter to me.
Preamble:
1- Detect the label of the first String defined by the label...
Hi George,
I downloaded the project (VarDispSerDemo.bas) and I compiled it.
I found only one single String, defined as: Dim String_Var As String * 10. Is it right?
You have written the line:...
Hi George,
Exactly, everything I comented you, the "Strings" were loaded in RAM memory in runtime.
I began to understand your question and it is not possible because you can not know the Label...
In fact, you are right. cPtr8 uses TBLPTRH & TBLPTRL for PIC with memory <= 64Kb. It is normal. But it does not use TBLPTRU for memory > 64Kb ???, for example the PIC18F27K40. I will study it in...
Hi George,
What is the PIC you are using? According to the PIC the way of reading the ID can change. TBLPTRU, TBLPTRH & TBLPTRL are the bytes that define the address of the first byte to read/write...
Hi George,
You can find information about the pre-processor on page 412 of the manual. I know it is not enough to know everything concerning the use of macros by the pre-processor.
I have had to...
Sorry, maybe you wanted it this way.
' Include "Proton18_4.inc"
' Include "Proton18_8.inc"
Include "Proton18_16.inc"
Dim MyStringPointer As Byte
Dim LenghtOfString...
Hi George,
Using the built-in ISIS in the compiler, which is great, you can try some things.
I've tried writing a macro that could summarize your needs, I expect.
Brackets define the String, it is...
Hi George,
I do not understand what you want to do exactly.
But in my GPS code demo, I had written a macro with input of a string. I do not know if it will be useful.
In this case the name & size...
Better For x = 0 to 10
Hi Yves,
I believe there is no difficulty. I have tested with ISIS and the results seem correct. However it is advisable to check the FOSC of the ADC, see the compatibility table in the PIC...
Hi Yves ,
Using "Amicus18_26K22.inc" and my library "Amicus_ADC.Inc".
To configure the reference voltages of the ADC, you must configure the V + and V- as you know.
You can choose an...
You could see this code in the wiki.
Declare Xtal = 64
Regards
Alberto
Hi Joseph,
I used your Handheldv1.6 routines. And I introduced the ASCII data of GGA in your buffer like this.
GNGGA_Extract:
bLoop = 68 ' Because your receive loop HRSin code.
...
Hi Josep,
I tried your code using the same variables at the same addresses RAM with a simulation code with Proteus.
And I have been able to recreate the same asm code compiled with V3.6.0.2. I do...
I'm going to start with a project using the GPS Module VK2828U7G5. For my use it is quite cheap. Has anyone used it? Does this GPS have any special difficulties?
Thanks for any info.
Alberto
I tested the Heap Directive with short and large code. For my part the Heap Directive issue is corrected.
Les, I really appreciate the new comment heading of the different groups of variables in the...
I signe up to buy the 2 boards (PIC18 & PIC24) too.
Alberto
Sorry Les,
I updated the project in files server.
Regards
Alberto
Thank you John,
They are many hours of work. I modify and test the routines until they are perfect to achieve my goal.
The article is available in the WIKI.
Regards
Alberto
Hi Les,
I have just uploaded my code in the Files system.
I wrote some Set_Bank / Reset_Bank to solve the problem.
I want to prepare another code for testing.
Regards
Alberto
PS: This a...
Hi John,
I wrote an article for "Demo code for the ZX4120 GPS" with new library.
Located in "wiki/Example Code/GPS/Demo code for the ZX4120 GPS".
John, thank you very much for your help, to...
AlbertoFS has just uploaded Demo code for the ZX4120 GPS!
Demo code for the ZX4120 GPS with new library.
The article will be available soon.
For the moment, I have only detected this problem. Could you isolate the code that is failing?
Regards
Alberto
The solution is for the moment:
Set_Bank FloatVariable
FloatVariable = -FloatVariable
Reset_Bank
Regards
Alberto
It seems that the error is occurring in all float variables in this condition.
FloatVariable = -FloatVariable
I think I found the problem.
There is an error of Bank switching here.
If qT1 <> 0 Or qT2 <> 0 Then
If qT1 > qT2 Then
qTemp1 = ATan(qT2/qT1)
qTH = PIby2...
I have preserved only the routine that fails in a test program. I have found the position when it fails, by moving the addresses of the variables. I do not see any indexing error of variables ......
Another problem: The Warning for using too much System Variables are not running well at compile time.
#define _SYSTEM_VARIABLE_COUNT 111
For the PIC18F25K20 I think there are 96.
I have...
http://www.protonbasic.co.uk/showthread.php/69060-What-does-Heap-mean-after-dimensioning-a-variable
Problem with heap directive with PDS version 3.6.0.1
Hi Les,
I was using the Heap directive because it was already written in the GPS.inc library. Everything worked well with Version 3.5.9.9 of...
Hi All,
Please, do not use the version 3.5.9.9 of the PDS to compile my bootloader, it could give some problems.
Better to use the version 3.6.0.1.
Thanks, David,
It is very instructive. I'll keep it in mind for my project.
Alberto
David,
Thank you very much for the information. Anyway I will not use the 1Hz output accurately. I have this GPS to prepare a code for a future project.
I got a good result with my code, getting...
The links to Beginneers and wiki are broken or malfunctioning.
Alberto
Thanks John,
I will keep it in mind and I have modified the routine to not read the sign. (Optional).
Sending configuration to the GPS:
I have tried sending a configuration frame to the GPS. I...
Hi John,
I do not understand a part of the original GPS.inc code.
The GPS WDG_ZX4120 delivers LAT/LON data in DM.m format (Degrees, Minute & minutes decimals).
Could the GPS deliver these...
Hi John,
I have checked your Locator to lat/long converter code with the web calculator at http://k7fry.com/grid/ and it works very fine.
For my information: In this code where you could put the...
I've had some headaches with the Lat/Lon to locator conversion code from the wiki. I have found some errors in longitude calculations. The code is corrected and is more efficient. I do not know if...
Very nice!
Can the NC-05 bluetooth Serial work on 115200 Bauds for the bootloader?
Alberto
Thank you very much John, I'm going to try it. When I finish, I will put all the code in the wiki.
Regards
Alberto
It is a code written by John Drew and Published on 9th January 2012.
You can see the code HERE.
Could you add 2 supports for Click module.
Alberto
Thank you, John. I am waiting for your information.
Now I can communicate with the GPS to configure some parameters to increase the speed of my code.
The RsOut command does not seem to work at...
I am working with my GPS project and trying to learn.
I am using the Amicus18 board with the FOSC = 80Mhz (PIC18F25K20) to make all the calculations every second, that there are many.
I am also...
Hi Shantanu,
This is the code I use when the PIC starts. The Config Fuses must be configured for these functions.
' At Power up control the state of the PIC.
' Check the Reset Flag bit
...
A Local Variables Library for the State Machine.
It is very important to reuse the variables when they are scarce as the system variables.
It is not perfect but it can help.
See the article:...
There does not seem to be any information to get the 1Hz output. I am going to reduce GPS information output to 2 frames for Time & Long/Lat. This way I will have time to do more things.
Thanks Bob.
hadv215, John,
I wanted to use the 1pps output to get a pulse per second to sync my code. I will connect the output of the GPS UART to INT0 input of the PIC which will give me an interrupt every...
The 1pps output is optional. If I am not mistaken in the translation it means that there is not a 1pps output. I can find another solution.
I bought the ZX4120 GPS Amicus shield and I would like to get the 1 Hz output.
How can you get it? The manual does not address this issue.
Also the schematic of the module is missing, I need it for...
Hi Les,
I am using my local Bytes declaration system several years ago. (Please see my libraries) And I wanted to make a new construction that looks more visual. But I do not think there is an...
Tutorial State Machine Part 5. A Simple Multitasking System.
Using the same project I have written a new code to make a small multitasking system.
Enjoy it. Read the article.
Alberto
After reset, the program counter of the PIC starts at address 0. Then it counts up.
And expect to find a few lines of code to execute. If the PIC finds a series of data in a Cdata table, it tries to...
If the Cdata table is at the end of your program there is no problem.
But if the Cdata table is at the top of your programm, it must be bypassed by a Goto:
At the top of the programm:
$Define...
Compiler version 3.5.9.3, PIC18F25K20.
I am working with the Amicus18 board running at 80 Mhz. It works very well.
Bus the "Declare Hbus_Bitrate 100" is not correct for Xtal = 80Mhz.
The value...
I am preparing a multitask system (4 or more) in the background to help the current state machine. It is already working very well for the moment.
The final code and manual would be available in 4...
In my Bootloader project in the Wiki, for the test code I used Timer0 to toggle a LED. I was used it in the Low Interrupt Handler.
CodeTest_uart1_26K22_V30.BAS
For High Interrupt it could be the...
#George
I will have to replay with my bootloader to reproduce the issue and see in what conditions. I will need several days. The problem is that I'm going to travel next week. But I'll get into...
When I was writing my bootloader for the PDS, I was going crazy also using some arrays. Everything went well when the array was positioned in the BankA or in a Bank superior. But when the array was a...
You do not do anything wrong.
I have also noticed problems of erroneous readings with small arrays. I have discovered that if the array is located between BankA and Bank0 (PIC18 device) then...
Tutorial State Machine Part 4.
I wrote a complete project of a Clock/Calendar with the programming of the Contrast, Date/Time and 2 alarms. A new State Machine library has been updated with new...
Thank you John,
I wrote the article in Beginners\
Alberto
I have tested this configuration on the Proteus (PIC18F25K22) with 3 LCDs and everything works fine. I changed the nibble of the PORTA in the lower part because a Xtal is used in RA6 / RA7.
...