Or local file if there is not always available a network connection.
Ioannis
Paul v0.1 build 2 download seemed to be build 1. did IU mess up or is the wrong file posted?
-Bert
The glass is not half full or half empty, Its twice as big as needed for the job!
http://foamcasualty.com/ - Warbird R/C scratch building with foam!
Another question. Do we need the dependency on PBP files? I ask this because I don't know how many machines I am allowed to install PBP on (I assume 1). I use at least 2 daily, 1 at work and 1 at home. So I can't run your wizard at work cuz PBP is installed at home.
Now you may be asking yourself, Why do you need to create a header without PBP installed? Heres my reason, I often find time to work on stuff at work in small bits. So I may start a new project at work and tote it back and forth on a USB drive. Testing will be done at home, but I can still work on chunks of code at work. Make sense?
-Bert
The glass is not half full or half empty, Its twice as big as needed for the job!
http://foamcasualty.com/ - Warbird R/C scratch building with foam!
No, we are working from Microchip files.Do we need the dependency on PBP files
Dave
Always wear safety glasses while programming.
-Bert
The glass is not half full or half empty, Its twice as big as needed for the job!
http://foamcasualty.com/ - Warbird R/C scratch building with foam!
Not at the moment. I'd like to do it all using just the standard MPASM inc files.
I assume 2. 8^) I never use them at the same time. I did explicitly purchase a 2nd copy of MCS as a tacit "thank you" for making a few special/oddball bootloader files for me.I ask this because I don't know how many machines I am allowed to install PBP on (I assume 1).
FWIW I purchased the Proton compiler, 100% legitimately, a few years ago (I was lusting after the floating point). Almost immediately afterwards they instituted the dongle protection scheme. Other issues aside, I received a message that if I didn't upgrade (for more money) to the dongle system I would be listed as a "pirate" on their board. I've never used Proton again, embraced PBP with all my heart (sorry I strayed!), and learned the joy that is integer math.
Oh dear, I'm getting off on a tangent... MELabs license... Okay...
From the MELabs web site:
The way I understand this is that as long as *I* am the one using it on one computer at a time (which is all I do) I am in compliance. It's similar to uninstalling the software from my work computer at the end of the day and installing it at home in the evening. I really don't think this is even a gray area, but I am not a lawyer (thank goodness!). If someone official (e.g. from MELabs) told me my interpretation was wrong I would reconsider.In consideration of Licensee's payment of the license fee, which is part of the price Licensee paid for this product, and Licensee's agreement to abide by the terms and conditions on this page, the Company grants Licensee a nonexclusive right to use and display the copy of the enclosed software on a single computer at a single location.
Yay tangents!
Best Regards,
Paul
bug report:
1. dir browser works great, doesn't cry about PBP dir unless you go through the settings.
2. If you change chips, settings from last chip persist.
3. tris and port are still output as port and tris. to be clear, when i change the tris setting, port is changed in the output.
4. This is the biggie, cant find the option to include what I forgot!
hopes:
can the tris and port output be combined when less then 8 pins are avail? ie:trisa=%xx00110011 instead of the current trisa.0= trisa.1= etc.
-Bert
The glass is not half full or half empty, Its twice as big as needed for the job!
http://foamcasualty.com/ - Warbird R/C scratch building with foam!
I will assume as you have regarding the use on 2 machines by just 1 person. ACAD used to be this way, 10 years ago. In fact they spelled it out as "Install on as many machines as you want, but ONLY 1 seat may be used at a time"
Yea PBP!!! BAD Proton
-Bert
The glass is not half full or half empty, Its twice as big as needed for the job!
http://foamcasualty.com/ - Warbird R/C scratch building with foam!
Its my thinking, when the wizard is doing what we want it to do, the "all digital" will be tended to by default. If all the user wants is digital, the other stuff won't be turned on and the reg's will be set to use all dig. On the other hand, if the user checks all dig, but then configures the A/D, wizard will have to handle the error or the program won't work as expected. Of course, it could be set so if all dig is selected, all other options are grayed.
have I lost my mind? again?
-Bert
The glass is not half full or half empty, Its twice as big as needed for the job!
http://foamcasualty.com/ - Warbird R/C scratch building with foam!
Glad something worked right!
Well, they need to be set to something... What would you recommend?2. If you change chips, settings from last chip persist.
You didn't like that part? Ok, I've found and fixed that bug.3. tris and port are still output as port and tris. to be clear, when i change the tris setting, port is changed in the output.
Ah, well...I don't want to push the joke too far...4. This is the biggie, cant find the option to include what I forgot!
I've tried messing with that, and the question I have is what value should your "x" be set? For most chips it's not a big deal. The 16F877 has only the lowest 3 bits on PORTE, so the application can write "TRISE = %111" to set them all to inputs. The 16F827, on the other hand, appears to be missing PORTA.5. I don't think it would make sense to write "PORTA = %11x11111". My understanding is in that case, the PIC really doesn't care what you set it to--it doesn't exist so it will just be ignored. But I still have to set it to something--1 or 0? Either way it is going to confuse someone sooner or later...can the tris and port output be combined when less then 8 pins are avail? ie:trisa=%xx00110011 instead of the current trisa.0= trisa.1= etc.
Best Regards,
Paul
My thoughts are to set them to nothing like they are when You first open. Maybe just clear the enable check box. I agree the high/low needs to be set to one or the other. Maybe by default all tris are input and all ports are low?Well, they need to be set to something... What would you recommend?
You didn't like that part? Ok, I've found and fixed that bug.
Just shows you have more sense then me.Ah, well...I don't want to push the joke too far...
To me using 0 and keeping the value looking "right" is easier to read. but thats just me. it would make great sense to be able to write 11x11111, but I'm sure the compilers will scream!I've tried messing with that, and the question I have is what value should your "x" be set? For most chips it's not a big deal. The 16F877 has only the lowest 3 bits on PORTE, so the application can write "TRISE = %111" to set them all to inputs. The 16F827, on the other hand, appears to be missing PORTA.5. I don't think it would make sense to write "PORTA = %11x11111". My understanding is in that case, the PIC really doesn't care what you set it to--it doesn't exist so it will just be ignored. But I still have to set it to something--1 or 0? Either way it is going to confuse someone sooner or later...
on an aside, don't know if I've even said thank you, so if not THANK YOU!!!!!!!
-Bert
The glass is not half full or half empty, Its twice as big as needed for the job!
http://foamcasualty.com/ - Warbird R/C scratch building with foam!
Just to follow up on this, I finally did remember to bring my ICD3 home from work. Today I have it plugged in. I also have the test interface module pluged into it. From time to time through out the day, I jump to mplab and test the connection. So far so good. I don't really know if this will test the issue or not, but at least is a start.
-Bert
The glass is not half full or half empty, Its twice as big as needed for the job!
http://foamcasualty.com/ - Warbird R/C scratch building with foam!
With the test interface works OK. It just ensures that electrically the ICD3 is working.
But if you load a hex file, compile a project or try to program a chip then after a while it looses connection and returns an error message. The only cure is to disconnect the USB cable and reconnect in a few seconds.
Any version after 8.15a does this. In my Vista, XP and in a friends systems to (his ICD3). On the Microchips forum there are reports from others too...
Ioannis
Hello All,
Don't want you to think I've been slacking off too badly...
Attached is the most recent version of the header wizard. It's come a long way but there is still far to go...
Changes and additions to Build 3:
- -Now requires accurate location of PBP folder. This is used when populating the "Select PIC" combo box. The include file must exist in both the MPASM and PBP folders to be added. This prevents the application from attempting to parse files for microcontrollers that are not supported by PBP.
- When selecting PIC, tabs are updated to show or hide PORT, ADC, Comparator, and USART tabs depending on whether or not they exist for that device.
- In General tab, added DEFINE for oscillator speed.
- In General tab, added DEFINE for using bootloader.
- In General tab, added DEFINE for enabling PORTB pullups.
- In Port tab, straightened out reversing of TRIS and PORT bits.
- In Port tab, added handling so that PORT and TRIS will be output in a single line each if possible. Unused (i.e. non-existant) bits are set as zero.
- In ADC tab, added checkbox to set all potential ADC ports to digital.
- In ADC tab, added checkbox to configure internal ADC. At this point ONLY the standard PBP DEFINES are included.
- In Comparator tab, added checkbox to set all potential comparator ports to digital.
Comments, bug reports, suggestions always appreciated...
Best Regards,
Paul
Great idea, but now I'm broke from testing at work again.Changes and additions to Build 3:
- -Now requires accurate location of PBP folder. This is used when populating the "Select PIC" combo box. The include file must exist in both the MPASM and PBP folders to be added. This prevents the application from attempting to parse files for microcontrollers that are not supported by PBP.
All sounds really good, just have to wait till I get home to play. And I have work I must do before going home.
- When selecting PIC, tabs are updated to show or hide PORT, ADC, Comparator, and USART tabs depending on whether or not they exist for that device.
- In General tab, added DEFINE for oscillator speed.
- In General tab, added DEFINE for using bootloader.
- In General tab, added DEFINE for enabling PORTB pullups.
- In Port tab, straightened out reversing of TRIS and PORT bits.
- In Port tab, added handling so that PORT and TRIS will be output in a single line each if possible. Unused (i.e. non-existant) bits are set as zero.
- In ADC tab, added checkbox to set all potential ADC ports to digital.
- In ADC tab, added checkbox to configure internal ADC. At this point ONLY the standard PBP DEFINES are included.
- In Comparator tab, added checkbox to set all potential comparator ports to digital.
Comments, bug reports, suggestions always appreciated...
Best Regards,
Paul
-Bert
The glass is not half full or half empty, Its twice as big as needed for the job!
http://foamcasualty.com/ - Warbird R/C scratch building with foam!
Hi Paul. Thanks for the new version.
Please have a look at the attached picture. It has some garbage under File Utility menus.
Also when starting the application it askes fo the Microchip directory.
a) since it is by default installed in a known place, can this be autmated?
b) the window that request to manually find the directory is at the back ground and not visible.
And it then assumes that my PBP is at c:\pbp
If I have my PBP in a different place, say c:\pbp243 it gives an error message for MPASM not found!
After the error messages if I set the paths in Utility/Settings menu, all are OK after.
In ADC tab, if All Analog Ports to Digital is checked, then there is no point in Configure Built in ADC. An being in the ADC, it does not set the ADCON0/ADCON1 registers. (I tested the 16F887)
Can you add also a PWM tab?
Now this is a reminder if possible to add in a later version: Timers, Comparators, Interrupts.
The last note is about the aesthetic ofte windows. Can this be OS based to look more slick and related to the current OS system?
Ioannis
Last edited by Ioannis; - 20th September 2010 at 20:03. Reason: Forgot many ...
Hello Ioannis,
You must be using Large Fonts. I'll add some handling to account for that,
Are you aware of a registry key for this? I could check that and use that as the default (if the key exists). Failing that can you make any recommendations for what the default should be or how it should be determined?Also when starting the application it askes fo the Microchip directory.
a) since it is by default installed in a known place, can this be autmated?
Good point. I can fix that.b) the window that request to manually find the directory is at the back ground and not visible.
Whoops...that will teach me to re-use code! I will fix that as well.And it then assumes that my PBP is at c:\pbp
If I have my PBP in a different place, say c:\pbp243 it gives an error message for MPASM not found!
After the error messages if I set the paths in Utility/Settings menu, all are OK after.
Hmm. I'll have to figure out what I did to break that--thanks for finding the problem!In ADC tab, if All Analog Ports to Digital is checked, then there is no point in Configure Built in ADC. An being in the ADC, it does not set the ADCON0/ADCON1 registers. (I tested the 16F887)
I did figure that someone might wish to configure all ports as digital and then change just one of them (or something) to analog. I probably didn't think that through far enough and will re-visit the question.
Comparators is on the short list. PWM can be done reasonably easily (I think). Timers and interrupts somewhat harder. On any/all of these, what do you want to set? (What decisions would the user make and what would the output look like). I've set all of these at one time or another for my own projects but the challenge is how to generalize the rule.Can you add also a PWM tab?
Now this is a reminder if possible to add in a later version: Timers, Comparators, Interrupts.
I'm using an old version of Delphi (v4 from 1998!). At some point I'll try recompiling under a newer version, which should update the look.The last note is about the aesthetic ofte windows. Can this be OS based to look more slick and related to the current OS system?
Thanks for all your comments!
Best Regards,
Paul
Paul, maybe we can get a definative list for all the special functions - everyone chime in here - and get a version just showing all tabs as if every function may be used on a "test" device? Even better, anyone want to put together a "test" .inc to try out the app? The test device would be a phantom chip that has every function available in every chip for its class. So maybe 3 files 16F,18F, and 18FJ.
I think this would go far towards the planing side of things.
As for the looks, I really like the new icon.
Which OS to look like? XP,Vista, WIn7, or none of the above. Personally I like the looks of Fedora Core but thats a whole different issue.
-Bert
The glass is not half full or half empty, Its twice as big as needed for the job!
http://foamcasualty.com/ - Warbird R/C scratch building with foam!
-Bert
The glass is not half full or half empty, Its twice as big as needed for the job!
http://foamcasualty.com/ - Warbird R/C scratch building with foam!
A question for the moderators or anybody more forum savy than I (won't take much)
Seeing how I have the first post in the thread, I would like to edit it to have a link to the most current updates. For example: a Link to Daves post with his link, and a link to todays update from Paul.
I am sure this should be quite easy, but I am just getting the "[QUOTE]" stuff figured out. I don't mind updating the post, just not sure how. Of course, I guess Dave, I could just copy your link and paste it in?
-Bert
The glass is not half full or half empty, Its twice as big as needed for the job!
http://foamcasualty.com/ - Warbird R/C scratch building with foam!
See post#1. I am not going very far with my code so I can at least maintain the thread...
Thanks Paul!!!
Dave
Always wear safety glasses while programming.
Thanks Dave
-Bert
The glass is not half full or half empty, Its twice as big as needed for the job!
http://foamcasualty.com/ - Warbird R/C scratch building with foam!
Hi Paul. No I do not use other than the system default. In fact they seem a little small as the screen is on a 18.1 Laptop with HD support.
I am not aware of any registry keys, but maybe you can set a default path as c:\program files\microchip\mplab suite
If this is not found, then you dialog will pop-up for the user to correct it.
I fully understand. I do not know exactly too!
Well, for timers lets start by selecting which timer will be enabled, if interrupts also will be set, prescaller settings, count-down value, time it takes according to Clock oscillator, which oscillator (system or external or 32,768).
For Interrupt, sure it is more difficult, maybe Darrel can help here. He has changed the files to a newer version (now is 1.10) and maybe you have to work with him.
Ioannis
Hi, Paul
This tool is beginning to look really nice !!!
I noticed in V3 you used ANCON instead of ADCON ...
one other very little detail is if you select " all digital " ... ADC configs, if also selected, still appear in the produced code window ... might be one option only , no ???
Congratulations ... I'd really like to be able to do that !!!
Alain
Last edited by Acetronics2; - 21st September 2010 at 11:22.
************************************************** ***********************
Why insist on using 32 Bits when you're not even able to deal with the first 8 ones ??? ehhhhhh ...
************************************************** ***********************
IF there is the word "Problem" in your question ...
certainly the answer is " RTFM " or " RTFDataSheet " !!!
*****************************************
Here is my attempt at creating a full wish list. I am not trying to imply This hasn't been covered through the many posts, but I am trying to get it all in 1 place. As I see we are still talking about what to include, I personally couldn't even attempt what Paul has done with such moving targets. Seems odd to me we are this far, and haven't stopped to create this list. so here goes:
- Config's
- Comparator
- 8 bit ADC
- OSC
Mid-range (Above plus) PIC12,PIC16- SPI/I2C
- UART
- PWM(s)
- LCD
- 10 bit ADC
- Op Amp
Enhanced Mid-range (Above plus) PIC12F1XXX,PIC16F1XXX- Adds multiple Communication Peripherals
- Linear Programming Space - I don't think this has anything to do with the wizard
- PWM(s) with independent time base
PIC18 xtras (above plus)- 8x8 Hardware multipler (need setup in wizard?)
- CAN
- CTMU
- USB
- Ethernet
- 12 bit ADC
This clearly came direct from the 8-bit brochure. This is all open for discussion, but I think this should be what we are after.
If anyone thinks its a good idea, I will attempt to create a new line of PIC's for us. PIC109999,PIC129999,PIC169999,PIC12F1999,PIC16F199 9,PIC189999.
Maybe we don't need all of them, I'm just not sure. The intended purpose is for testing. This way we wouldn't have to go through all the chips just to make sure everything works.
This is open for discussion.
If it is a good idea, This is not something Paul or Dave should create. After all, they are providing us with their programming skills, we can at least help by putting some text files together. Maybe these "feature rich" chips actually do exist already, in that case we just need to agree they are the test standard.
Now to ALL of us except Paul or Dave, certainally we can help out by coming up with the things to be set for each line item. This way they don't have to do all the homework! For us to be able to do this, we need a format with which to convey the information.
Paul, you asked what should that look like? (in reference to the timers I think). How would you like to get the answer? ie: a list of registers, drop down list idea, radio buttons. Are you looking for input to the general format? This is what I mean by a format to convey the answers. I trust you know what needs to be spit out by the wizard, I am guessing you want to know how the user will tell it?
I guess my point here is this. This really is a big project. As a community we CAN all help to complete this. Part of this may come from my desire to help, but not sure where, so I'm looking for places. From what I can tell so far, this is a forum full of many talents. Maybe someone is a graphic person, They could throw out some design ideas or provide a background graphic. We are all busy, as I'm sure Paul is also. Lets jump in here and make this a REAL community project. In the end, We will have something we will all benifit from, ultimately saving us all time on every project/job.
Please don't take this as me ranting, I am ecstatic thus far with the whole thing! I am just trying to find ways for all of us to be involved.
Last edited by cncmachineguy; - 21st September 2010 at 13:55.
-Bert
The glass is not half full or half empty, Its twice as big as needed for the job!
http://foamcasualty.com/ - Warbird R/C scratch building with foam!
HI,
The header wizard is a very good idea.
aesthetic is not my first choice...
DT tell us that there is already a functioning Configurator that will be available fairly soon.
One tool is better than many tools... no ?
Regards
Harry Paris
Harry,
The one Darrel spoke of wll only do the fuses.
Dave
Always wear safety glasses while programming.
Hello Everyone,
It's late and I'm tired so I apologize about not replying individually to the bug reports, comments, and suggestions. The enthusiasm and encouragement is also much appreciated.
My poor head is not thinking perfectly straight tonight so I'll just try to weigh in on some of the discussion. I've found (and fixed) the bug Alain identified. I tried to push the text around on the form so none of it interferes with other objects. I've also moved the project from Delphi 4 up to Delphi 2006 (now a part of Borland Developer Studio) to see if that has any effect on the aesthetics. I want to see what else I can implement quickly before getting another version out, so it gets taken a little further instead of just a bug fix.
Bert has made the suggestions of creating a few mock microcontrollers to test out the various features. I support instead identifying a small handful of µCs that are representative. My suggestions are the 12F683, 16F628, 16F877, 18F452, 18F1330, and 18F67J50. Naturally these are the chips with which I have the most experience.
The sky is the limit for the application BUT I don't want to be working on this the rest of my life... (I'm happy to send the source to anyone on request.) There should be defined goals for the first "release" of the application. I would have been happy with setting the configuration fuses...8^) Plan ahead for features to go in subsequent versions. To paraphrase George Patton, "A good application today is better that a perfect application later."
In volunteer software projects "later" turns into "never" all too often so let's wind up with, at minimum, something useful even if it doesn't have everything.
I suggest putting the desired function list into two or three tiers--"Very Important," "Nice to Have," and "Would be Cool but..."
I am not the best programmer/electronics guy on the planet, probably not even in the top 50% of the (incredibly knowledgeable, helpful, gentle, and patient) contributors to this list. What I do have going for me is a broad base of general knowledge and the fact that I'm not really good at giving up on projects. With all of that said, any code, pseudo-code, logic, or even flow charts helping map out how to generalize any of these functions would make it go a lot faster, as the alternative is me plowing through a dozen or so databooks. I'm not averse to that, but it is slower.
And I gotta say, DT's ALLDIGITAL.pbp is a absolute work of art.
Best Regards (and apologies for rambling--again),
Paul
Hi Paul.
Do not appologize for anything. You did a great job so far. We all appreciate the effort and understand that few lines that the project delivers, need a wholo lot of work on the background.
Even if you decide to stop here, be sure to have our appreciation. But if you want to take it further, well we would be more happy,
Thanks again,
Ioannis
Paul,
In my opinion the program you have is a good place to stop for a first release. Then after it is used for awhile and hidden bugs chased out add more stuff. I guess the other big thing to add for another release would be interrupts??
One thing to add to the General tab that might save some problems is an MCLR in/reset option.
Your program makes my attempt at a web based system feeble. I like they way yours looks and works.
Good idea.I suggest putting the desired function list into two or three tiers--"Very Important," "Nice to Have," and "Would be Cool but..."
Could you add 18F2550 to the list???My suggestions are the 12F683, 16F628, 16F877, 18F452, 18F1330, and 18F67J50. Naturally these are the chips with which I have the most experience.
I resemble that remarkIn volunteer software projects "later" turns into "never" all too often
Hopefully another Delphi programmer will come along to help.The sky is the limit for the application BUT I don't want to be working on this the rest of my life...
Thanks again for all the work you have done on this!!!!!
Dave
Always wear safety glasses while programming.
************************************************** ***********************
Why insist on using 32 Bits when you're not even able to deal with the first 8 ones ??? ehhhhhh ...
************************************************** ***********************
IF there is the word "Problem" in your question ...
certainly the answer is " RTFM " or " RTFDataSheet " !!!
*****************************************
Paul,
I did not intend or mean to seem ungrateful or overwhelm you in any way. Thus far Your app is GREAT and I agree with Dave, at this point it is useable and helpful. Just not having to tend to the TRIS on initilize is a big step in being a wizard. If you were to stop now (which I REALLY hope doesn't happen), I'm sure I will use what you have given us for a good while.
As for my very long post, I was really attempting to nail down some sort of idea as to where this is or could be going. Then as I was creating the post, I was a bit overwhelmed, so I started thinking how can we help? After all, I really don't think this should be an "all on 1 person" kinda thing.
Yes the tier idea is perfect! I think the way you are creating this is very good. At anytime, what you have is useable, and also a new function/feature can be added. I don't personally care much about how it looks, I'm a "form after function" kind of guy. But I really DO LOVE your new icon.
I'm not really clear on how you are actually creating this "magic" for us. by that I mean, do you get all the info from a .inc file, then have gillions of if_then or Case type functions?
I will see if I can come up with some sort of flow chart/descision making generalization for a feature.
Again, BIG THANKS for what you have done!
-Bert
The glass is not half full or half empty, Its twice as big as needed for the job!
http://foamcasualty.com/ - Warbird R/C scratch building with foam!
Hello All,
First, just to make it clear, the fact I was fried the last time I posted had nothing to do with this project! I do not feel unappreciated or overwhelmed. You folks are all just swell! My day job, on the other hand....8^)
So I had a few hours tonight and started in on the ADC stuff. I decided to start with the 16F877 (which used to be my "go to" microcontroller). I then started implementing the next nearest type of ADC I could find, which is represented by the 16C433. Those two appear to be making the right data, but the application is picking up way more other PICs than are actually handled in the same manner.
I can think of at least three ways of writing the configuration bits in PBP. First, the terse way is to write everything in a single line for each register, e.g.
The second is to do it a bit at a time, still referencing the registers, e.g.Code:ADCON0 = %10101010
The third (and most verbose) way is to alias the register bits and set them by name, e.g.Code:ADCON0.7 = 1 ADCON0.6 = 0 etc.
There are probably other ways, too, but I've tried implementing the first and third methods. In the verbose mode I also tried to add helpful comments. There are two screenshots attached showing the results of both ways.Code:ADCS1 var ADCON0.7 ADCS0 var ADCON0.6 ADCS1 = 1 ADCS0 = 0
Best Regards,
Paul
Yup, day jobs can be a real pain
Personally I like the first and second ways. How do you normally do it in your code?
Dave
Always wear safety glasses while programming.
I like the first way best. third method is nice. second way not so much.
-Bert
The glass is not half full or half empty, Its twice as big as needed for the job!
http://foamcasualty.com/ - Warbird R/C scratch building with foam!
Bookmarks