You need a library, or whatever the Arduino refers to it, for some things, but for others you can create your own routines.
Do you really need a library function to make an LED blink on and off?
I think a big reason we have every increasing bloat-ware is because programmers are too insulated from the hardware they are programming.
Back in the 8-bit days you had to live within the limits of the system you were programming, whereas today the end-user is expected to buy new hardware as programs demand more and more computing power.
I think a big reason we have every increasing bloat-ware is because programmers are too insulated from the hardware they are programming.
Back in the 8-bit days you had to live within the limits of the system you were programming, whereas today the end-user is expected to buy new hardware as programs demand more and more computing power.
True, but libraries give even entry level programmers power. One of the Parallax demos for SimpleIDE with PropellerGCC is a WAV player. It's fun and not too hard to add. Same goes for SPIN of course. I would much rather see a library not accidently or purposely hide details though because that can make them harder to understand in just a few minutes (especially when a few minutes might be all you got!).
Jazzed, I am glad you mention that because I am starting to learn Spin and it's frustrating to see lots of code using libraries and scattered but not well documented code on how to do it only with Spin.
I understand that servos and sound both use the counter NCO mode and that RC uses I think it's NEG mode.
I also see Andy configure the counters one way in the PE Kit which is easy to understand and everyone else do it another way using a shift operator.
Unless the C compiler doesn't allow it, you should be able configure the counters directly and create your own functions.
Andy does a very good job of explaining how the counters work and how to use them in the PE text. I just wish there were more examples of how to do Stamp equivalent things that the other texts use.
By the way, will the Prop2 counters create sine waves?
I think a big reason we have every increasing bloat-ware is because programmers are too insulated from the hardware they are programming.
Well yes. However being insulated from your hardware is a good thing. It means your programs can live longer than your particular machine architecture.
The real villain here was Allen Turing, who described a universal programmable engine with an infinite memory. The "Turing Machine".
Programmers have been assuming that infinite space ever since
Wait a frikken minute. Somebody is doing a good job of confusing everybody. We are talking about the Arduino here. That means we are talking about the ATMEL 8 bit micro that the Arduino uses. That means we are talking about C/C++ compiled with GCC to run on that ATMEL chip. For sure Java does not.
Now, I might be out of touch with the latest Arduino devices but my guess is it's about the same.
The Arduino IDE may well be written in Java. That is another story,
This is the Processing project, which is a Java-based IDE, and a Java-based language (a set of Java classes)...
You need a library, or whatever the Arduino refers to it, for some things, but for others you can create your own routines.
Do you really need a library function to make an LED blink on and off?
I think a big reason we have every increasing bloat-ware is because programmers are too insulated from the hardware they are programming.
Back in the 8-bit days you had to live within the limits of the system you were programming, whereas today the end-user is expected to buy new hardware as programs demand more and more computing power.
Libraries are just collections of re-usable functions, classes, or objects.
There's nothing wrong with being insulated from the hardware, as that insulation is what allows us to build increasingly advanced systems.
I also see Andy configure the counters one way in the PE Kit which is easy to understand and everyone else do it another way using a shift operator.
Unless the C compiler doesn't allow it, you should be able configure the counters directly and create your own functions.
The PropellerC system allows access to all the COG registers as variable names. You just can't do things like OUTA[1] = 0. OUTA is a register, not an array.
Andy does a very good job of explaining how the counters work and how to use them in the PE text. I just wish there were more examples of how to do Stamp equivalent things that the other texts use.
There should be a Stamp library. Andy and I were just discussing things like serout() and debug() ... but he wants to call them something else.
BTW, the Learn tutorials are all about Stamp-ish applications and syntax. There are loads of similarities between the SimpleTools and Stamp functions.
Jazzed, I was thinking more of giving code snippets or listing small functions that do the equivalent of PBASIC.
For example:
HIGH 14 ---> dira[14] := outa[14] := 1
LOW 14 ---> outa[14] := 0 (Assuming Pin has already set to output)
I need to review my C but I remember using |, OR, and &, AND, to set or clear bits in configuration registers to enable or disable hardware.
We were programming the Mini-Board which used an MC6811. It was a great little piece of hardware for the time and I didn't know about the BS2 until many years later.
I still those C programs that I wrote saved on my hard drive.
I remember my instructor was extremely picky about documenting exactly what each line of code does but all these years later I can look at that code and understand exactly what it does.
Here is an example:
OPTION = OPTION | 0x80 /* Power Up Analog to Digital by Setting Bit 7 (ADPU) of Option Register to 1 using OR
Well yes. However being insulated from your hardware is a good thing. It means your programs can live longer than your particular machine architecture.
The real villain here was Allen Turing, who described a universal programmable engine with an infinite memory. The "Turing Machine".
Programmers have been assuming that infinite space ever since
Ironically, all computers use bits and hence their number systems lack infinity as even 32bits, 64bits, 128bits and so on require a limited range of integers. Infinity doesn't roll-over to zero in unsigned integers, does it?
++++++++++++
My prime point is that you might learn a more marketable skill set with PropellerGCC than Arduinio. Yes, Arduino is handy with Wiring and such making the user feel coding is a bit easier. But in the real world, you need more depth to have the ability to program bigger projects within an OS.
Arduino is intended to captivate and make dependent its users -- both with language and shields. Not much effort, not much learned... but lots of sales.
We all know that people regularly turn to Parallax Forums for good answers to real problems on other platforms. Why so? Parallax's approach really broadens knowledge for the user.
Not sure that Arduino will ever do so for the average user... the developers are the captivators, so that have created their virtual playpen and comprehend its boundaries.
You need a library, or whatever the Arduino refers to it, for some things, but for others you can create your own routines.
Do you really need a library function to make an LED blink on and off?
I think a big reason we have every increasing bloat-ware is because programmers are too insulated from the hardware they are programming.
Back in the 8-bit days you had to live within the limits of the system you were programming, whereas today the end-user is expected to buy new hardware as programs demand more and more computing power.
Hardware is cheap...software is expensive...really. ;<)
Back in the 8-biterr.. make that 4-bit days we had no choice...now we do.
Word is getting out on the Propeller 2. I was dismayed to find the specs no longer exist at the link below. Does this mean the Propeller 2 off the table or the specs are just being updated? I highly recommend keeping the specs site live.
Word is getting out on the Propeller 2. I was dismayed to find the specs no longer exist at the link below. Does this mean the Propeller 2 off the table or the specs are just being updated? I highly recommend keeping the specs site live.
Late this week we aim to update the specs and schedule.
I was looking forward to seeing something by the end of the week as promised. May I recommend updating the link below with the current goal on specs, and including wording to the effect that specs are subject to change in order to improve the product. Also recommend settling on a name. Propeller-2? Propeller-X? Turbine-1? Turboprop? Word is getting out on this.
I had to check it out. It's interesting. Loopy makes the confident speculation that:
I suspect that the TurboProp is 90% or more done in hardware, but the real restraint s are that the IDE and the documentation of the Propeller are not even complete.
Comments
Do you really need a library function to make an LED blink on and off?
I think a big reason we have every increasing bloat-ware is because programmers are too insulated from the hardware they are programming.
Back in the 8-bit days you had to live within the limits of the system you were programming, whereas today the end-user is expected to buy new hardware as programs demand more and more computing power.
True, but libraries give even entry level programmers power. One of the Parallax demos for SimpleIDE with PropellerGCC is a WAV player. It's fun and not too hard to add. Same goes for SPIN of course. I would much rather see a library not accidently or purposely hide details though because that can make them harder to understand in just a few minutes (especially when a few minutes might be all you got!).
I understand that servos and sound both use the counter NCO mode and that RC uses I think it's NEG mode.
I also see Andy configure the counters one way in the PE Kit which is easy to understand and everyone else do it another way using a shift operator.
Unless the C compiler doesn't allow it, you should be able configure the counters directly and create your own functions.
Andy does a very good job of explaining how the counters work and how to use them in the PE text. I just wish there were more examples of how to do Stamp equivalent things that the other texts use.
By the way, will the Prop2 counters create sine waves?
The real villain here was Allen Turing, who described a universal programmable engine with an infinite memory. The "Turing Machine".
Programmers have been assuming that infinite space ever since
This is the Processing project, which is a Java-based IDE, and a Java-based language (a set of Java classes)...
http://www.processing.org/ (here's a good intro http://hello.processing.org/editor/)
Here is Wiring, which builds on Processing...
http://wiring.org.co/ (see bottom of page...)
The Arduino project derives from Processing and Wiring...
https://en.wikipedia.org/wiki/Arduino#Software
There are other projects such as MPIDE (PIC+AVR) and Maple (ARM) that follow the Arduino model.
So basically we are talking GCC for the Arduino. All this Java stuff is just fluff.
Libraries are just collections of re-usable functions, classes, or objects.
There's nothing wrong with being insulated from the hardware, as that insulation is what allows us to build increasingly advanced systems.
The PropellerC system allows access to all the COG registers as variable names. You just can't do things like OUTA[1] = 0. OUTA is a register, not an array.
There should be a Stamp library. Andy and I were just discussing things like serout() and debug() ... but he wants to call them something else.
BTW, the Learn tutorials are all about Stamp-ish applications and syntax. There are loads of similarities between the SimpleTools and Stamp functions.
I suppose using the DACs it would be possible to see a real sine wave.
For example:
HIGH 14 ---> dira[14] := outa[14] := 1
LOW 14 ---> outa[14] := 0 (Assuming Pin has already set to output)
I need to review my C but I remember using |, OR, and &, AND, to set or clear bits in configuration registers to enable or disable hardware.
We were programming the Mini-Board which used an MC6811. It was a great little piece of hardware for the time and I didn't know about the BS2 until many years later.
I still those C programs that I wrote saved on my hard drive.
I remember my instructor was extremely picky about documenting exactly what each line of code does but all these years later I can look at that code and understand exactly what it does.
Here is an example:
OPTION = OPTION | 0x80 /* Power Up Analog to Digital by Setting Bit 7 (ADPU) of Option Register to 1 using OR
Andy has added lots of PBASIC-like functions into the Propeller C Simple Libraries.
Here's a good page for reviewing for the simpletools library functions.
http://propsideworkspace.googlecode.com/hg/Learn/Simple Libraries/Utility/libsimpletools/Documentation simpletools Library.html
The only things missing are DEBUG/DEBUGIN and SEROUT/IN, which are supported by print, dprint, scan, and dscan which are documented here:
http://propsideworkspace.googlecode.com/hg/Learn/Simple Libraries/TextDevices/libsimpletext/Documentation simpletext Library.html
All of this is very STAMP-ish, and many more are in the queue.
http://learn.parallax.com/propeller-c-simple-circuits
http://learn.parallax.com/propeller-c-simple-devices
http://learn.parallax.com/propeller-c-simple-protocols
http://learn.parallax.com/activitybot
Ironically, all computers use bits and hence their number systems lack infinity as even 32bits, 64bits, 128bits and so on require a limited range of integers. Infinity doesn't roll-over to zero in unsigned integers, does it?
++++++++++++
My prime point is that you might learn a more marketable skill set with PropellerGCC than Arduinio. Yes, Arduino is handy with Wiring and such making the user feel coding is a bit easier. But in the real world, you need more depth to have the ability to program bigger projects within an OS.
Arduino is intended to captivate and make dependent its users -- both with language and shields. Not much effort, not much learned... but lots of sales.
We all know that people regularly turn to Parallax Forums for good answers to real problems on other platforms. Why so? Parallax's approach really broadens knowledge for the user.
Not sure that Arduino will ever do so for the average user... the developers are the captivators, so that have created their virtual playpen and comprehend its boundaries.
Hardware is cheap...software is expensive...really. ;<)
Back in the 8-biterr.. make that 4-bit days we had no choice...now we do.
http://www.parallax.com/microcontrollers/propeller/Products/propeller2specs
The design has been getting a major overhaul recently. 16 COGs instead of 8. A lot more RAM. Quite likely able to operate at a higher clock rate.
No doubt the specs will be updated when the design changes have settled down.
Late this week we aim to update the specs and schedule.
Ken Gracey
I was looking forward to seeing something by the end of the week as promised. May I recommend updating the link below with the current goal on specs, and including wording to the effect that specs are subject to change in order to improve the product. Also recommend settling on a name. Propeller-2? Propeller-X? Turbine-1? Turboprop? Word is getting out on this.
http://www.parallax.com/microcontrollers/propeller/Products/propeller2specs
But what I am really curious about is what the clock rate will be. I haven't gotten a clear idea of that from all the buzz.
I just think you can call it 'The Sweet P'
But there are a lot of geniuses on this forum. Google tells me "turboprop" appears 109 times here!
The first hit is from 2006! Where KenBash uses it in the very thread title:
http://forums.parallax.com/showthread.php/87514-quot-TurboProp-quot-timeframe.
I had to check it out. It's interesting. Loopy makes the confident speculation that: Ah well.