time-nuts@lists.febo.com

Discussion of precise time and frequency measurement

View all threads

Re: [time-nuts] I want a good micro-controller

G
GandalfG8@aol.com
Sat, Aug 16, 2008 10:28 AM

In a message dated 16/08/2008 01:11:09 GMT Daylight Time,
rvassar@rob-vassar.com writes:

The  PIC... I have no nice words for the PIC.  It's a CPU architecture
kept alive by Donald Rumsfeld himself (He was the CEO of G.I. back  in
the '70's), and surely he must have made a deal with the Devil  to
make it as successful as it is.  How's that for a  religious
argument? :-)


LOL

Keeping it secular, what's with the PIC bashing?

Surely it's a case of horses for courses, and there's been enough  successful
commercial, as well as hobby, products based on PICs to suggest you  might be
just a wee bit out of touch with some parts of the real world:-)

regards

Nigel
GM8PZR

In a message dated 16/08/2008 01:11:09 GMT Daylight Time, rvassar@rob-vassar.com writes: The PIC... I have no nice words for the PIC. It's a CPU architecture kept alive by Donald Rumsfeld himself (He was the CEO of G.I. back in the '70's), and surely he must have made a deal with the Devil to make it as successful as it is. How's that for a religious argument? :-) ------------- LOL Keeping it secular, what's with the PIC bashing? Surely it's a case of horses for courses, and there's been enough successful commercial, as well as hobby, products based on PICs to suggest you might be just a wee bit out of touch with some parts of the real world:-) regards Nigel GM8PZR
W
wje
Sat, Aug 16, 2008 12:36 PM

As the one who made the first comment about not liking the PIC, I'll
give you my reasons. Yes, they are philosophical, even religious. I'm
also distinguishing between microprocessors (this discussion) and other
variants, such as DSPs, FPLDs, etc.

First, I've used a very large number of different micros over the years
for both 'real' work and my own purposes, starting with the Intel 8008
before it was commercially released. I've used Intel, TI, Motorola,
Zilog, MOS Tech processors of multiple families, and yes, even PICs, all
with wildly varying architectures. These days, given modern development
tools, the architecture of a general-purpose micro really isn't
particularly relevant. It's functionality and support tools that are
important.

Without a doubt, PIC made it possible for many hobbyists to put together
nice projects that they would not necessarily have been able to do
otherwise. My deep-seated revulsion comes from one source, and it's not
the architecture, the company, or the capabilities of the chips. It's
Basic, the language. Until relatively recently, PIC and Basic were
almost synonymous, at least for the masses.

I have both EE and CS degrees, and I work in both worlds. In my humble
(but completely accurate and stable) opinion, Basic is not a programming
language. It's a tool of Satan designed to convince people that they are
programmers when they really should stick to their janitorial duties.
This is a subset of the general problem that everyone thinks they are
programmers, and usually think their code is perfect. But, that's a rant
for a different audience.

So, for me, given that there are some very good C development tools for
mainstream processors, and frequently they are free, I just don't use
PICs. As I mentioned earlier, I currently like the Motorola (I mean,
Freescale; these silly name changes are yet another rant) MC68HCxx line;
there's a wide choice of features and they can be flashed easily without
a complicated programmer. The 8-pin xx908QT4 is a buck and does a fine
job for many purposes, and most importantly, you can get a nice C
development environment for the line, which was originally from
CodeWarrior, for free. It also supports the entire line, from 8-bit to
32-bit, and with builtin support for all of the various on-chip
'peripherals'.

Even now, I don't think Microchip provides a compiler that supports the
low-end chips, but I haven't checked lately.

But, when you get right down to it, you really need to pick the proper
solution for your problem. If there was something the PICs provided that
I couldn't get elsewhere, I'd use them. Religion is fine, but getting
the job done is more important.

BTW, for those that think you can't do anything with an 8-pin 8-bit
micro, I did one design that supports an LCD, a rotary encoder, a
Hall-effect sensor, and a button. At home, I use the same chip in every
light switch in my house to implement a self-tuning capacitance sense
switch. I even use a couple for a more time-nuts related tasks. One
provides loop control for my GPS/Rb/Quartz standard, and one is used as
a 555 timer replacement in my SmartClock->PC interface. (Ok, I was in a
hurry, needed a pulse stretcher, and I didn't have any 555's lying around)

Bill Ezell

They said 'Windows or better'
so I used Linux.

GandalfG8@aol.com wrote:

In a message dated 16/08/2008 01:11:09 GMT Daylight Time,
rvassar@rob-vassar.com writes:

The  PIC... I have no nice words for the PIC.  It's a CPU architecture
kept alive by Donald Rumsfeld himself (He was the CEO of G.I. back  in
the '70's), and surely he must have made a deal with the Devil  to
make it as successful as it is.  How's that for a  religious
argument? :-)


LOL

Keeping it secular, what's with the PIC bashing?

Surely it's a case of horses for courses, and there's been enough  successful
commercial, as well as hobby, products based on PICs to suggest you  might be
just a wee bit out of touch with some parts of the real world:-)

regards

Nigel
GM8PZR


time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.

As the one who made the first comment about not liking the PIC, I'll give you my reasons. Yes, they are philosophical, even religious. I'm also distinguishing between microprocessors (this discussion) and other variants, such as DSPs, FPLDs, etc. First, I've used a very large number of different micros over the years for both 'real' work and my own purposes, starting with the Intel 8008 before it was commercially released. I've used Intel, TI, Motorola, Zilog, MOS Tech processors of multiple families, and yes, even PICs, all with wildly varying architectures. These days, given modern development tools, the architecture of a general-purpose micro really isn't particularly relevant. It's functionality and support tools that are important. Without a doubt, PIC made it possible for many hobbyists to put together nice projects that they would not necessarily have been able to do otherwise. My deep-seated revulsion comes from one source, and it's not the architecture, the company, or the capabilities of the chips. It's Basic, the language. Until relatively recently, PIC and Basic were almost synonymous, at least for the masses. I have both EE and CS degrees, and I work in both worlds. In my humble (but completely accurate and stable) opinion, Basic is not a programming language. It's a tool of Satan designed to convince people that they are programmers when they really should stick to their janitorial duties. This is a subset of the general problem that everyone thinks they are programmers, and usually think their code is perfect. But, that's a rant for a different audience. So, for me, given that there are some very good C development tools for mainstream processors, and frequently they are free, I just don't use PICs. As I mentioned earlier, I currently like the Motorola (I mean, Freescale; these silly name changes are yet another rant) MC68HCxx line; there's a wide choice of features and they can be flashed easily without a complicated programmer. The 8-pin xx908QT4 is a buck and does a fine job for many purposes, and most importantly, you can get a nice C development environment for the line, which was originally from CodeWarrior, for free. It also supports the entire line, from 8-bit to 32-bit, and with builtin support for all of the various on-chip 'peripherals'. Even now, I don't think Microchip provides a compiler that supports the low-end chips, but I haven't checked lately. But, when you get right down to it, you really need to pick the proper solution for your problem. If there was something the PICs provided that I couldn't get elsewhere, I'd use them. Religion is fine, but getting the job done is more important. BTW, for those that think you can't do anything with an 8-pin 8-bit micro, I did one design that supports an LCD, a rotary encoder, a Hall-effect sensor, and a button. At home, I use the same chip in every light switch in my house to implement a self-tuning capacitance sense switch. I even use a couple for a more time-nuts related tasks. One provides loop control for my GPS/Rb/Quartz standard, and one is used as a 555 timer replacement in my SmartClock->PC interface. (Ok, I was in a hurry, needed a pulse stretcher, and I didn't have any 555's lying around) Bill Ezell ---------- They said 'Windows or better' so I used Linux. GandalfG8@aol.com wrote: > > In a message dated 16/08/2008 01:11:09 GMT Daylight Time, > rvassar@rob-vassar.com writes: > > The PIC... I have no nice words for the PIC. It's a CPU architecture > kept alive by Donald Rumsfeld himself (He was the CEO of G.I. back in > the '70's), and surely he must have made a deal with the Devil to > make it as successful as it is. How's that for a religious > argument? :-) > > > ------------- > LOL > > Keeping it secular, what's with the PIC bashing? > > Surely it's a case of horses for courses, and there's been enough successful > commercial, as well as hobby, products based on PICs to suggest you might be > just a wee bit out of touch with some parts of the real world:-) > > regards > > Nigel > GM8PZR > > > > > > > _______________________________________________ > time-nuts mailing list -- time-nuts@febo.com > To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts > and follow the instructions there. > > >
RV
Robert Vassar
Sat, Aug 16, 2008 1:44 PM

On Aug 16, 2008, at 5:28 AM, GandalfG8@aol.com wrote:

Keeping it secular, what's with the PIC bashing?

Surely it's a case of horses for courses, and there's been enough
successful
commercial, as well as hobby, products based on PICs to suggest
you  might be
just a wee bit out of touch with some parts of the real world:-)

regards

Nigel
GM8PZR

And:

Oh good, they we can take your opinion on PIC's as that of an expert.

-Chuck Harris

Gentlemen, I could not have made that more tongue-in-cheek!  It's a
good thing this isn't about Python, the Amiga, or the obvious
superiority of "vi", or I would have seen some real flames!

My opinion on PIC's is no more valid than my opinion on brands of
car.  I can make some observations drawn from 20+ years of computing/
electronics hobby, and 15 years as a software professional.  But I am
not a professional embedded systems engineer.  I can have entirely
valid, well thought out reasons, but at the end of the day it's not
much different than "I like VW, and I don't like Dodge".  I can go
fetch groceries with either one.  To a professional, perhaps nothing
of interest.  To someone contemplating buying one of the "PIC'n"
books or building any kind of programmer that involves two 9 volt
batteries, perhaps they will find my comments a useful warning.

As a member of the "brain damaged by Basic" generation, I mostly
agree with Bill's comments regarding it's use. Yet I still keep the
public domain 8052AH-BASIC image in my '51 code directory, and have
fond memories of it's use.  The PIC is not alone in propagating that
mistake, though they seem to be the last.

Cheers,

Rob

On Aug 16, 2008, at 5:28 AM, GandalfG8@aol.com wrote: > > > Keeping it secular, what's with the PIC bashing? > > Surely it's a case of horses for courses, and there's been enough > successful > commercial, as well as hobby, products based on PICs to suggest > you might be > just a wee bit out of touch with some parts of the real world:-) > > regards > > Nigel > GM8PZR > > And: > Oh good, they we can take your opinion on PIC's as that of an expert. > > -Chuck Harris > Gentlemen, I could not have made that more tongue-in-cheek! It's a good thing this isn't about Python, the Amiga, or the obvious superiority of "vi", or I would have seen some real flames! My opinion on PIC's is no more valid than my opinion on brands of car. I can make some observations drawn from 20+ years of computing/ electronics hobby, and 15 years as a software professional. But I am not a professional embedded systems engineer. I can have entirely valid, well thought out reasons, but at the end of the day it's not much different than "I like VW, and I don't like Dodge". I can go fetch groceries with either one. To a professional, perhaps nothing of interest. To someone contemplating buying one of the "PIC'n" books or building any kind of programmer that involves two 9 volt batteries, perhaps they will find my comments a useful warning. As a member of the "brain damaged by Basic" generation, I mostly agree with Bill's comments regarding it's use. Yet I still keep the public domain 8052AH-BASIC image in my '51 code directory, and have fond memories of it's use. The PIC is not alone in propagating that mistake, though they seem to be the last. Cheers, Rob
PK
Poul-Henning Kamp
Sat, Aug 16, 2008 2:20 PM

Having spent 30 years programming things, let me just add this:

The original PIC chips have a strange software architecture, but
it uses very little silicon real-estate, which is why we suddenly
could program things in DIP-8 format.

If that is your business, they're not bad for the job.

A good example of this kind of application is TVB's PPS divider in
a PIC16F84

Once you get to program your stuff in 'C' or other high level
languages you shouldn't need to bother with the software architecture,
instead concentrate on what I/O, bootloading and what else is
important.

The fact that people program PIC's in BASIC is fine with me, in
fact I think it has gotten a lot of people hooked on programming
who would otherwise never have tried.

If I started a project today, I would seriously consider ARM
chips, which come from very small (LPC2103) and all the way
up to what runs the iPhone and GCC has good arm support.

Olimex.com (resold by sparkfun) has tons of different prototyping
cards with all sorts of chips, browse around and find something you
like.

--
Poul-Henning Kamp      | UNIX since Zilog Zeus 3.20
phk@FreeBSD.ORG        | TCP/IP since RFC 956
FreeBSD committer      | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.

Having spent 30 years programming things, let me just add this: The original PIC chips have a strange software architecture, but it uses very little silicon real-estate, which is why we suddenly could program things in DIP-8 format. If that is your business, they're not bad for the job. A good example of this kind of application is TVB's PPS divider in a PIC16F84 Once you get to program your stuff in 'C' or other high level languages you shouldn't need to bother with the software architecture, instead concentrate on what I/O, bootloading and what else is important. The fact that people program PIC's in BASIC is fine with me, in fact I think it has gotten a lot of people hooked on programming who would otherwise never have tried. If I started a project today, I would seriously consider ARM chips, which come from very small (LPC2103) and all the way up to what runs the iPhone and GCC has good arm support. Olimex.com (resold by sparkfun) has tons of different prototyping cards with all sorts of chips, browse around and find something you like. -- Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 phk@FreeBSD.ORG | TCP/IP since RFC 956 FreeBSD committer | BSD since 4.3-tahoe Never attribute to malice what can adequately be explained by incompetence.
SN
Scott Newell
Sat, Aug 16, 2008 2:37 PM

At 07:36 AM 8/16/2008, wje wrote:

I have both EE and CS degrees, and I work in both worlds. In my humble
(but completely accurate and stable) opinion, Basic is not a programming
language. It's a tool of Satan designed to convince people that they are
programmers when they really should stick to their janitorial duties.
This is a subset of the general problem that everyone thinks they are
programmers, and usually think their code is perfect. But, that's a rant
for a different audience.

So, how do you tell if you're not a programmer, but pretending to be
one?  My code is far from perfect, but it can usually be made to get
the job done.  I try not to cut too many corners, and the ones that I
do cut bother me.  But when you're the lone programmer on projects,
it's hard to know if you're crummy or decent, since there's no one to
measure against.  (Of course, there's the metric of 'product shipped,
product works, bossman happy, paycheck cashed', but that doesn't
distinguish between good and bad programmers, just programmers that
can fool others along with themselves.)

--
newell  N5TNL

At 07:36 AM 8/16/2008, wje wrote: >I have both EE and CS degrees, and I work in both worlds. In my humble >(but completely accurate and stable) opinion, Basic is not a programming >language. It's a tool of Satan designed to convince people that they are >programmers when they really should stick to their janitorial duties. >This is a subset of the general problem that everyone thinks they are >programmers, and usually think their code is perfect. But, that's a rant >for a different audience. So, how do you tell if you're not a programmer, but pretending to be one? My code is far from perfect, but it can usually be made to get the job done. I try not to cut too many corners, and the ones that I do cut bother me. But when you're the lone programmer on projects, it's hard to know if you're crummy or decent, since there's no one to measure against. (Of course, there's the metric of 'product shipped, product works, bossman happy, paycheck cashed', but that doesn't distinguish between good and bad programmers, just programmers that can fool others along with themselves.) -- newell N5TNL
W
wje
Sat, Aug 16, 2008 4:10 PM

You certainly don't need formal training to be a good programmer; I've
seen plenty of code from CS grads that's terrible, and very nice code
from art majors.
In my book, a good program is one one that's organized logically, well
documented, and performs the job it was designed to do. A god
programmer is someone that produces such programs. That's it. The
problem is that, with the advent PCs and easily-accessible programming
tools, everyone thinks they can write code, and many can't. Then what
you end up with is a tangled mess that's unmaintainable and
indecipherable.
It's interesting that any number of EE's will take great care in
circuit design, but then throw together some poorly-designed code to
run their beautiful circuit. But, this has been endemic in the hardware
industry for as long as I've been around. Hardware companies frequently
have the attitude that it's the hardware that's important and the
software is just one of those minor bits that has to get tacked on.
This was true even for some companies that should have known better;
there were plenty of HW engineers I ran into back in the old Digital
days that, even though they were building minicomputers, really
considered software an unfortunate requirement that had to be shipped
with their beautiful hardware.
Ah well, this is really wandering off-topic and my blood pressure's
going up. I think I'll go write some C code for an 8-bit micro to calm
down. And yes, I use vi. :)
Bill Ezell

They said 'Windows or better'
so I used Linux.

Scott Newell wrote:

At 07:36 AM 8/16/2008, wje wrote:

I have both EE and CS degrees, and I work in both worlds. In my humble
(but completely accurate and stable) opinion, Basic is not a programming
language. It's a tool of Satan designed to convince people that they are
programmers when they really should stick to their janitorial duties.
This is a subset of the general problem that everyone thinks they are
programmers, and usually think their code is perfect. But, that's a rant
for a different audience.

So, how do you tell if you're not a programmer, but pretending to be
one?  My code is far from perfect, but it can usually be made to get
the job done.  I try not to cut too many corners, and the ones that I
do cut bother me.  But when you're the lone programmer on projects,
it's hard to know if you're crummy or decent, since there's no one to
measure against.  (Of course, there's the metric of 'product shipped,
product works, bossman happy, paycheck cashed', but that doesn't
distinguish between good and bad programmers, just programmers that
can fool others along with themselves.)

You certainly don't need formal training to be a good programmer; I've seen plenty of code from CS grads that's terrible, and very nice code from art majors. In my book, a good program is one one that's organized logically, well documented, and performs the job it was designed to do. A god programmer is someone that produces such programs. That's it. The problem is that, with the advent PCs and easily-accessible programming tools, everyone thinks they can write code, and many can't. Then what you end up with is a tangled mess that's unmaintainable and indecipherable. It's interesting that any number of EE's will take great care in circuit design, but then throw together some poorly-designed code to run their beautiful circuit. But, this has been endemic in the hardware industry for as long as I've been around. Hardware companies frequently have the attitude that it's the hardware that's important and the software is just one of those minor bits that has to get tacked on. This was true even for some companies that should have known better; there were plenty of HW engineers I ran into back in the old Digital days that, even though they were building minicomputers, really considered software an unfortunate requirement that had to be shipped with their beautiful hardware. Ah well, this is really wandering off-topic and my blood pressure's going up. I think I'll go write some C code for an 8-bit micro to calm down. And yes, I use vi. :) Bill Ezell ---------- They said 'Windows or better' so I used Linux. Scott Newell wrote: At 07:36 AM 8/16/2008, wje wrote: I have both EE and CS degrees, and I work in both worlds. In my humble (but completely accurate and stable) opinion, Basic is not a programming language. It's a tool of Satan designed to convince people that they are programmers when they really should stick to their janitorial duties. This is a subset of the general problem that everyone thinks they are programmers, and usually think their code is perfect. But, that's a rant for a different audience. So, how do you tell if you're not a programmer, but pretending to be one? My code is far from perfect, but it can usually be made to get the job done. I try not to cut too many corners, and the ones that I do cut bother me. But when you're the lone programmer on projects, it's hard to know if you're crummy or decent, since there's no one to measure against. (Of course, there's the metric of 'product shipped, product works, bossman happy, paycheck cashed', but that doesn't distinguish between good and bad programmers, just programmers that can fool others along with themselves.)
BH
Bill Hawkins
Sat, Aug 16, 2008 6:06 PM

As long as we're off topic, but interesting - I was born in 1938.
MIT had a 704 and punch cards and maybe FORTRAN in the fifties.
A classmate wrote FORTH as a portable program for big telescopes.

Programming tools have run off in different directions since then,
just as today's tool section in a Big Box is very different from
before the baby boom hit the market.

Everybody that needs a tool has a good chance of finding what
they're looking for, but they'll look for what they've used before
or maybe a little better.

Y'see, the human brain only weighs three pounds. It hasn't been
possible to fit the sum of human knowledge into one brain for one
or two hundred years, depending on the capability of the brain.

So we have to specialize, and the specialties keep getting narrower.

I helped design an industrial process control system in the eighties.
One architect couldn't do it - it took one for hardware (Motorola 68K),
one for programming (Unix), and one for process control (me, with 20
years of industrial control experience). It was a grand educational
experience.

So when someone says that this or that tool is absolutely useless, I
take that as a sign of narrow specialization, in the dark about the rest
of the world but egocentrically sure the rest of the world must be like
them. It's a law of human nature, like "The prospect of wealth motivates
deceit." Today's politicians seem unable to suppress that motivation.

Veering back towards the list topic, I found this in "Four Laws that
Drive the Universe" by Peter Atkins (it's about thermodynamics):

"Energy is conserved because time is uniform: time flows steadily, it
does not bunch up and run faster then spread out and run slowly. ...
If time were to bunch up and spread out, then energy would not be
conserved."

But maybe uniform time is only a local effect, on the scale of the
Universe. As far as we know, conservation of energy is not violated,
so we have to find the causes of observed time variations in the
hardware we've built or the programs we've written.

Wait, what about Einstein's relativity? The flow of time is still
uniform
in a manner that can be predicted from the equations.

Bill Hawkins

-----Original Message-----
From: time-nuts-bounces@febo.com [mailto:time-nuts-bounces@febo.com] On
Behalf Of wje
Sent: Saturday, August 16, 2008 11:10 AM
To: Discussion of precise time and frequency measurement
Subject: Re: [time-nuts] I want a good micro-controller

You certainly don't need formal training to be a good programmer;
I've
seen plenty of code from CS grads that's terrible, and very nice code
from art majors.
In my book, a good program is one one that's organized logically,
well
documented, and performs the job it was designed to do. A good
programmer is someone that produces such programs. That's it. The
problem is that, with the advent PCs and easily-accessible
programming
tools, everyone thinks they can write code, and many can't. Then what
you end up with is a tangled mess that's unmaintainable and
indecipherable.
It's interesting that any number of EE's will take great care in
circuit design, but then throw together some poorly-designed code to
run their beautiful circuit. But, this has been endemic in the
hardware
industry for as long as I've been around. Hardware companies
frequently
have the attitude that it's the hardware that's important and the
software is just one of those minor bits that has to get tacked on.
This was true even for some companies that should have known better;
there were plenty of HW engineers I ran into back in the old Digital
days that, even though they were building minicomputers, really
considered software an unfortunate requirement that had to be shipped
with their beautiful hardware.
Ah well, this is really wandering off-topic and my blood pressure's
going up. I think I'll go write some C code for an 8-bit micro to
calm
down. And yes, I use vi. :)
Bill Ezell

They said 'Windows or better'
so I used Linux.

Scott Newell wrote:

At 07:36 AM 8/16/2008, wje wrote:

I have both EE and CS degrees, and I work in both worlds. In my humble
(but completely accurate and stable) opinion, Basic is not a programming
language. It's a tool of Satan designed to convince people that they are
programmers when they really should stick to their janitorial duties.
This is a subset of the general problem that everyone thinks they are
programmers, and usually think their code is perfect. But, that's a rant
for a different audience.

So, how do you tell if you're not a programmer, but pretending to be
one?  My code is far from perfect, but it can usually be made to get the
job done.  I try not to cut too many corners, and the ones that I do cut
bother me.  But when you're the lone programmer on projects, it's hard
to know if you're crummy or decent, since there's no one to measure
against.  (Of course, there's the metric of 'product shipped, product
works, bossman happy, paycheck cashed', but that doesn't distinguish
between good and bad programmers, just programmers that can fool others
along with themselves.)


time-nuts mailing list -- time-nuts@febo.com To unsubscribe, go to
https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.

As long as we're off topic, but interesting - I was born in 1938. MIT had a 704 and punch cards and maybe FORTRAN in the fifties. A classmate wrote FORTH as a portable program for big telescopes. Programming tools have run off in different directions since then, just as today's tool section in a Big Box is very different from before the baby boom hit the market. Everybody that needs a tool has a good chance of finding what they're looking for, but they'll look for what they've used before or maybe a little better. Y'see, the human brain only weighs three pounds. It hasn't been possible to fit the sum of human knowledge into one brain for one or two hundred years, depending on the capability of the brain. So we have to specialize, and the specialties keep getting narrower. I helped design an industrial process control system in the eighties. One architect couldn't do it - it took one for hardware (Motorola 68K), one for programming (Unix), and one for process control (me, with 20 years of industrial control experience). It was a grand educational experience. So when someone says that this or that tool is absolutely useless, I take that as a sign of narrow specialization, in the dark about the rest of the world but egocentrically sure the rest of the world must be like them. It's a law of human nature, like "The prospect of wealth motivates deceit." Today's politicians seem unable to suppress that motivation. Veering back towards the list topic, I found this in "Four Laws that Drive the Universe" by Peter Atkins (it's about thermodynamics): "Energy is conserved because time is uniform: time flows steadily, it does not bunch up and run faster then spread out and run slowly. ... If time were to bunch up and spread out, then energy would not be conserved." But maybe uniform time is only a local effect, on the scale of the Universe. As far as we know, conservation of energy is not violated, so we have to find the causes of observed time variations in the hardware we've built or the programs we've written. Wait, what about Einstein's relativity? The flow of time is still uniform in a manner that can be predicted from the equations. Bill Hawkins -----Original Message----- From: time-nuts-bounces@febo.com [mailto:time-nuts-bounces@febo.com] On Behalf Of wje Sent: Saturday, August 16, 2008 11:10 AM To: Discussion of precise time and frequency measurement Subject: Re: [time-nuts] I want a good micro-controller You certainly don't need formal training to be a good programmer; I've seen plenty of code from CS grads that's terrible, and very nice code from art majors. In my book, a good program is one one that's organized logically, well documented, and performs the job it was designed to do. A good programmer is someone that produces such programs. That's it. The problem is that, with the advent PCs and easily-accessible programming tools, everyone thinks they can write code, and many can't. Then what you end up with is a tangled mess that's unmaintainable and indecipherable. It's interesting that any number of EE's will take great care in circuit design, but then throw together some poorly-designed code to run their beautiful circuit. But, this has been endemic in the hardware industry for as long as I've been around. Hardware companies frequently have the attitude that it's the hardware that's important and the software is just one of those minor bits that has to get tacked on. This was true even for some companies that should have known better; there were plenty of HW engineers I ran into back in the old Digital days that, even though they were building minicomputers, really considered software an unfortunate requirement that had to be shipped with their beautiful hardware. Ah well, this is really wandering off-topic and my blood pressure's going up. I think I'll go write some C code for an 8-bit micro to calm down. And yes, I use vi. :) Bill Ezell ---------- They said 'Windows or better' so I used Linux. Scott Newell wrote: At 07:36 AM 8/16/2008, wje wrote: I have both EE and CS degrees, and I work in both worlds. In my humble (but completely accurate and stable) opinion, Basic is not a programming language. It's a tool of Satan designed to convince people that they are programmers when they really should stick to their janitorial duties. This is a subset of the general problem that everyone thinks they are programmers, and usually think their code is perfect. But, that's a rant for a different audience. So, how do you tell if you're not a programmer, but pretending to be one? My code is far from perfect, but it can usually be made to get the job done. I try not to cut too many corners, and the ones that I do cut bother me. But when you're the lone programmer on projects, it's hard to know if you're crummy or decent, since there's no one to measure against. (Of course, there's the metric of 'product shipped, product works, bossman happy, paycheck cashed', but that doesn't distinguish between good and bad programmers, just programmers that can fool others along with themselves.) _______________________________________________ time-nuts mailing list -- time-nuts@febo.com To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts and follow the instructions there.
DJ
Didier Juges
Sat, Aug 16, 2008 11:00 PM

That is an interesting thread. So I feel like I have to add my $0.02

I am a casual programmer. I got into programming when I had to, because it
was, at one time, the path of least resistance for something I wanted to do.
I am otherwise an EE. Today, I spend my time 50/50 doing hardware design and
software design. Most my software is embedded software, with a few
exceptions.

I am in the interesting position of having written (and re-written)
essentially the same desktop application under 4 different environments:
QuickBasic 4.5 (I can hear teeth clinching...), Microsoft QuickC 2.5
(MS-DOS), gcc under Linux and Visual Basic 6.0, so I think I can compare the
environments and the results pretty well.

While the visual appeal (eye candy) of the VB 6.0 version is undeniable, by
far the easiest to maintain (and with fewest bugs) is the gcc version.
Feature-wise, it matches the VB 6.0 version, but in different ways. It is
not as pretty (ncurses on an 80x24 terminal is NOT eye-candy) but it does
things that I have not even contemplated doing under VB.

Basic (and Visual Basic) go out of their way to make things easy, and as a
result allow way too many bugs (I call them undocumented features). They are
great to quickly simulate a user interface, or for a quick tool, but you do
not want to write large programs with it. Even though I know people who have
done it successfully, I myself have not been successful with it. It is just
too hard to do the right thing with Basic, it encourages slopiness.

Other than the PC, I write a fair amount of code for the 8051 and it's
variants, in C, using either the Keil compiler, or more recently the SDCC. I
have done a good bit of assembly for the Motorola 68HC05 way back (and the
8008 even farther back), and I am very glad this is over. The Motorola
architectures are usually pretty well done, but assembly? Pleeeeaaase...
(actually not quite over yet, I have my version of the 10 MHz-PPS divider
originally by TVB, mine runs on an 8051 and is written in assembly too)

In general, I find C programs easy to write and easy to maintain, and C
matches well with my hardware background.

Didier KO4BB

That is an interesting thread. So I feel like I have to add my $0.02 I am a casual programmer. I got into programming when I had to, because it was, at one time, the path of least resistance for something I wanted to do. I am otherwise an EE. Today, I spend my time 50/50 doing hardware design and software design. Most my software is embedded software, with a few exceptions. I am in the interesting position of having written (and re-written) essentially the same desktop application under 4 different environments: QuickBasic 4.5 (I can hear teeth clinching...), Microsoft QuickC 2.5 (MS-DOS), gcc under Linux and Visual Basic 6.0, so I think I can compare the environments and the results pretty well. While the visual appeal (eye candy) of the VB 6.0 version is undeniable, by far the easiest to maintain (and with fewest bugs) is the gcc version. Feature-wise, it matches the VB 6.0 version, but in different ways. It is not as pretty (ncurses on an 80x24 terminal is NOT eye-candy) but it does things that I have not even contemplated doing under VB. Basic (and Visual Basic) go out of their way to make things easy, and as a result allow way too many bugs (I call them undocumented features). They are great to quickly simulate a user interface, or for a quick tool, but you do not want to write large programs with it. Even though I know people who have done it successfully, I myself have not been successful with it. It is just too hard to do the right thing with Basic, it encourages slopiness. Other than the PC, I write a fair amount of code for the 8051 and it's variants, in C, using either the Keil compiler, or more recently the SDCC. I have done a good bit of assembly for the Motorola 68HC05 way back (and the 8008 even farther back), and I am very glad this is over. The Motorola architectures are usually pretty well done, but assembly? Pleeeeaaase... (actually not quite over yet, I have my version of the 10 MHz-PPS divider originally by TVB, mine runs on an 8051 and is written in assembly too) In general, I find C programs easy to write and easy to maintain, and C matches well with my hardware background. Didier KO4BB
DM
Dave Mallery
Sat, Aug 16, 2008 11:26 PM

bill

but wasn't that hardware beautiful??? (gazes at 11/70 backplane on wall...)

dave

On Sat, Aug 16, 2008 at 10:10 AM, wje wje@quackers.net wrote:

You certainly don't need formal training to be a good programmer; I've
seen plenty of code from CS grads that's terrible, and very nice code
from art majors.
In my book, a good program is one one that's organized logically, well
documented, and performs the job it was designed to do. A god
programmer is someone that produces such programs. That's it. The
problem is that, with the advent PCs and easily-accessible programming
tools, everyone thinks they can write code, and many can't. Then what
you end up with is a tangled mess that's unmaintainable and
indecipherable.
It's interesting that any number of EE's will take great care in
circuit design, but then throw together some poorly-designed code to
run their beautiful circuit. But, this has been endemic in the hardware
industry for as long as I've been around. Hardware companies frequently
have the attitude that it's the hardware that's important and the
software is just one of those minor bits that has to get tacked on.
This was true even for some companies that should have known better;
there were plenty of HW engineers I ran into back in the old Digital
days that, even though they were building minicomputers, really
considered software an unfortunate requirement that had to be shipped
with their beautiful hardware.
Ah well, this is really wandering off-topic and my blood pressure's
going up. I think I'll go write some C code for an 8-bit micro to calm
down. And yes, I use vi. :)
Bill Ezell

They said 'Windows or better'
so I used Linux.

Scott Newell wrote:

At 07:36 AM 8/16/2008, wje wrote:

I have both EE and CS degrees, and I work in both worlds. In my humble
(but completely accurate and stable) opinion, Basic is not a programming
language. It's a tool of Satan designed to convince people that they are
programmers when they really should stick to their janitorial duties.
This is a subset of the general problem that everyone thinks they are
programmers, and usually think their code is perfect. But, that's a rant
for a different audience.

So, how do you tell if you're not a programmer, but pretending to be
one?  My code is far from perfect, but it can usually be made to get
the job done.  I try not to cut too many corners, and the ones that I
do cut bother me.  But when you're the lone programmer on projects,
it's hard to know if you're crummy or decent, since there's no one to
measure against.  (Of course, there's the metric of 'product shipped,
product works, bossman happy, paycheck cashed', but that doesn't
distinguish between good and bad programmers, just programmers that
can fool others along with themselves.)


time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to
https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.

--
Dave Mallery, K5EN (ubuntu linux 8.04)
PO Box 3519; T or C, NM 87901

no gates...
no windows!
free at last!
linux counter #64628 (since 1997)

"People aren't as dumb as Microsoft needs them to be."
--PJ, May 2007

bill but wasn't that hardware beautiful??? (gazes at 11/70 backplane on wall...) dave On Sat, Aug 16, 2008 at 10:10 AM, wje <wje@quackers.net> wrote: > You certainly don't need formal training to be a good programmer; I've > seen plenty of code from CS grads that's terrible, and very nice code > from art majors. > In my book, a good program is one one that's organized logically, well > documented, and performs the job it was designed to do. A god > programmer is someone that produces such programs. That's it. The > problem is that, with the advent PCs and easily-accessible programming > tools, everyone thinks they can write code, and many can't. Then what > you end up with is a tangled mess that's unmaintainable and > indecipherable. > It's interesting that any number of EE's will take great care in > circuit design, but then throw together some poorly-designed code to > run their beautiful circuit. But, this has been endemic in the hardware > industry for as long as I've been around. Hardware companies frequently > have the attitude that it's the hardware that's important and the > software is just one of those minor bits that has to get tacked on. > This was true even for some companies that should have known better; > there were plenty of HW engineers I ran into back in the old Digital > days that, even though they were building minicomputers, really > considered software an unfortunate requirement that had to be shipped > with their beautiful hardware. > Ah well, this is really wandering off-topic and my blood pressure's > going up. I think I'll go write some C code for an 8-bit micro to calm > down. And yes, I use vi. :) > Bill Ezell > ---------- > They said 'Windows or better' > so I used Linux. > > Scott Newell wrote: > > At 07:36 AM 8/16/2008, wje wrote: > > > > I have both EE and CS degrees, and I work in both worlds. In my humble > (but completely accurate and stable) opinion, Basic is not a programming > language. It's a tool of Satan designed to convince people that they are > programmers when they really should stick to their janitorial duties. > This is a subset of the general problem that everyone thinks they are > programmers, and usually think their code is perfect. But, that's a rant > for a different audience. > > > So, how do you tell if you're not a programmer, but pretending to be > one? My code is far from perfect, but it can usually be made to get > the job done. I try not to cut too many corners, and the ones that I > do cut bother me. But when you're the lone programmer on projects, > it's hard to know if you're crummy or decent, since there's no one to > measure against. (Of course, there's the metric of 'product shipped, > product works, bossman happy, paycheck cashed', but that doesn't > distinguish between good and bad programmers, just programmers that > can fool others along with themselves.) > > > > _______________________________________________ > time-nuts mailing list -- time-nuts@febo.com > To unsubscribe, go to > https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts > and follow the instructions there. > -- Dave Mallery, K5EN (ubuntu linux 8.04) PO Box 3519; T or C, NM 87901 no gates... no windows! free at last! linux counter #64628 (since 1997) "People aren't as dumb as Microsoft needs them to be." --PJ, May 2007
BR
Bruce Raymond
Sat, Aug 16, 2008 11:38 PM

Hi all,

I'm a lurker and decided to stick my neck out a little. I, too started
out as a hardware engineer. In this case real hardware - I did
structural analysis of nuclear components. That was a few lifetimes ago.
I'm doing software now.

I'm in agreement with the comments about Basic being conducive to sloppy
programming. I want my compiler to do as much checking as possible, and
that's not in line with Basic. I'm partial to C for embedded applications.

The PIC architecture is truly atrocious. However, I've been using PICs
for years and am familiar with the development environment. I'm not in a
hurry to learn something else for casual use. The C compilers for PICs
play games with creating a pseudo stack by reallocating memory. I'd hate
to have to do that manually, but it seems to work alright when
implemented by compiler.

My actual contribution to the thread is a link to a free C compiler for
PICs that works pretty well. I have been using the CCS compiler and
switched to this one.

www.sourceboost.com/

Bruce Raymond/ND8I

Didier Juges wrote:

That is an interesting thread. So I feel like I have to add my $0.02

I am a casual programmer. I got into programming when I had to, because it
was, at one time, the path of least resistance for something I wanted to do.
I am otherwise an EE. Today, I spend my time 50/50 doing hardware design and
software design. Most my software is embedded software, with a few
exceptions.

I am in the interesting position of having written (and re-written)
essentially the same desktop application under 4 different environments:
QuickBasic 4.5 (I can hear teeth clinching...), Microsoft QuickC 2.5
(MS-DOS), gcc under Linux and Visual Basic 6.0, so I think I can compare the
environments and the results pretty well.

While the visual appeal (eye candy) of the VB 6.0 version is undeniable, by
far the easiest to maintain (and with fewest bugs) is the gcc version.
Feature-wise, it matches the VB 6.0 version, but in different ways. It is
not as pretty (ncurses on an 80x24 terminal is NOT eye-candy) but it does
things that I have not even contemplated doing under VB.

Basic (and Visual Basic) go out of their way to make things easy, and as a
result allow way too many bugs (I call them undocumented features). They are
great to quickly simulate a user interface, or for a quick tool, but you do
not want to write large programs with it. Even though I know people who have
done it successfully, I myself have not been successful with it. It is just
too hard to do the right thing with Basic, it encourages slopiness.

Other than the PC, I write a fair amount of code for the 8051 and it's
variants, in C, using either the Keil compiler, or more recently the SDCC. I
have done a good bit of assembly for the Motorola 68HC05 way back (and the
8008 even farther back), and I am very glad this is over. The Motorola
architectures are usually pretty well done, but assembly? Pleeeeaaase...
(actually not quite over yet, I have my version of the 10 MHz-PPS divider
originally by TVB, mine runs on an 8051 and is written in assembly too)

In general, I find C programs easy to write and easy to maintain, and C
matches well with my hardware background.

Didier KO4BB


time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.

Hi all, I'm a lurker and decided to stick my neck out a little. I, too started out as a hardware engineer. In this case real hardware - I did structural analysis of nuclear components. That was a few lifetimes ago. I'm doing software now. I'm in agreement with the comments about Basic being conducive to sloppy programming. I want my compiler to do as much checking as possible, and that's not in line with Basic. I'm partial to C for embedded applications. The PIC architecture is truly atrocious. However, I've been using PICs for years and am familiar with the development environment. I'm not in a hurry to learn something else for casual use. The C compilers for PICs play games with creating a pseudo stack by reallocating memory. I'd hate to have to do that manually, but it seems to work alright when implemented by compiler. My actual contribution to the thread is a link to a free C compiler for PICs that works pretty well. I have been using the CCS compiler and switched to this one. www.sourceboost.com/ Bruce Raymond/ND8I Didier Juges wrote: > That is an interesting thread. So I feel like I have to add my $0.02 > > I am a casual programmer. I got into programming when I had to, because it > was, at one time, the path of least resistance for something I wanted to do. > I am otherwise an EE. Today, I spend my time 50/50 doing hardware design and > software design. Most my software is embedded software, with a few > exceptions. > > I am in the interesting position of having written (and re-written) > essentially the same desktop application under 4 different environments: > QuickBasic 4.5 (I can hear teeth clinching...), Microsoft QuickC 2.5 > (MS-DOS), gcc under Linux and Visual Basic 6.0, so I think I can compare the > environments and the results pretty well. > > While the visual appeal (eye candy) of the VB 6.0 version is undeniable, by > far the easiest to maintain (and with fewest bugs) is the gcc version. > Feature-wise, it matches the VB 6.0 version, but in different ways. It is > not as pretty (ncurses on an 80x24 terminal is NOT eye-candy) but it does > things that I have not even contemplated doing under VB. > > Basic (and Visual Basic) go out of their way to make things easy, and as a > result allow way too many bugs (I call them undocumented features). They are > great to quickly simulate a user interface, or for a quick tool, but you do > not want to write large programs with it. Even though I know people who have > done it successfully, I myself have not been successful with it. It is just > too hard to do the right thing with Basic, it encourages slopiness. > > Other than the PC, I write a fair amount of code for the 8051 and it's > variants, in C, using either the Keil compiler, or more recently the SDCC. I > have done a good bit of assembly for the Motorola 68HC05 way back (and the > 8008 even farther back), and I am very glad this is over. The Motorola > architectures are usually pretty well done, but assembly? Pleeeeaaase... > (actually not quite over yet, I have my version of the 10 MHz-PPS divider > originally by TVB, mine runs on an 8051 and is written in assembly too) > > In general, I find C programs easy to write and easy to maintain, and C > matches well with my hardware background. > > Didier KO4BB > > > _______________________________________________ > time-nuts mailing list -- time-nuts@febo.com > To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts > and follow the instructions there. > >
W
wje
Sun, Aug 17, 2008 2:49 AM

Well, yes, it was. The first computer I actually owned was a PDP-8,
essentially stolen in pieces from the DEC scrapyard. Core memory, who
would have imagined that it would actually work? I mean, you could
actually see the bits. And it had blinking lights, too. I still insist
a computer isn't a real computer without blinking lights.
Which leads to yet another little side diversion... there was some
really fantastic hardware done back in the '70s and '80s, without the
benefit of DSPs, FPGAs, or microprocessors that had more power than a
modern wristwatch. I love reconditioning equipment from that era, and
it's remarkable what could be done with a handful of discrete
components that today is done with a million transistors worth of ICs.
My oldest working device is a 5061A from '68, not counting useless
things like my saturated-cell voltage standard; my favorite is a tie
between my HP 5370A and my Solartron 7081  laboratory dvm. Another
little gem (in my opinion at least) is the Polarad 632 spectrum
analyzer. They're not exceptional by any modern measure, but they're
dirt-cheap and do manage better than 120 db noise floor and a 10 Khz to
2 Ghz range. Plus, they have a nifty discrete IC digital video capture
board that does scan storage, scan averaging, and peak detection, all
without a single microprocessor in sight.
Which reminds me, what happened to all that wonderful European
engineering from companies like Datron and Solartron? Their equipment
frequently beat the pants off of anything we were doing at that time
(as I gaze lovingly at my pair of Datron 4910's).
Bill Ezell

They said 'Windows or better'
so I used Linux.

Dave Mallery wrote:

bill

but wasn't that hardware beautiful??? (gazes at 11/70 backplane on wall...)

dave

On Sat, Aug 16, 2008 at 10:10 AM, wje [1]wje@quackers.net wrote:

You certainly don't need formal training to be a good programmer; I've
seen plenty of code from CS grads that's terrible, and very nice code
from art majors.
In my book, a good program is one one that's organized logically, well
documented, and performs the job it was designed to do. A god
programmer is someone that produces such programs. That's it. The
problem is that, with the advent PCs and easily-accessible programming
tools, everyone thinks they can write code, and many can't. Then what
you end up with is a tangled mess that's unmaintainable and
indecipherable.
It's interesting that any number of EE's will take great care in
circuit design, but then throw together some poorly-designed code to
run their beautiful circuit. But, this has been endemic in the hardware
industry for as long as I've been around. Hardware companies frequently
have the attitude that it's the hardware that's important and the
software is just one of those minor bits that has to get tacked on.
This was true even for some companies that should have known better;
there were plenty of HW engineers I ran into back in the old Digital
days that, even though they were building minicomputers, really
considered software an unfortunate requirement that had to be shipped
with their beautiful hardware.
Ah well, this is really wandering off-topic and my blood pressure's
going up. I think I'll go write some C code for an 8-bit micro to calm
down. And yes, I use vi. :)
Bill Ezell

They said 'Windows or better'
so I used Linux.

Scott Newell wrote:

At 07:36 AM 8/16/2008, wje wrote:

I have both EE and CS degrees, and I work in both worlds. In my humble
(but completely accurate and stable) opinion, Basic is not a programming
language. It's a tool of Satan designed to convince people that they are
programmers when they really should stick to their janitorial duties.
This is a subset of the general problem that everyone thinks they are
programmers, and usually think their code is perfect. But, that's a rant
for a different audience.

So, how do you tell if you're not a programmer, but pretending to be
one?  My code is far from perfect, but it can usually be made to get
the job done.  I try not to cut too many corners, and the ones that I
do cut bother me.  But when you're the lone programmer on projects,
it's hard to know if you're crummy or decent, since there's no one to
measure against.  (Of course, there's the metric of 'product shipped,
product works, bossman happy, paycheck cashed', but that doesn't
distinguish between good and bad programmers, just programmers that
can fool others along with themselves.)


time-nuts mailing list -- [2]time-nuts@febo.com
To unsubscribe, go to
[3]https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.

References

  1. mailto:wje@quackers.net
  2. mailto:time-nuts@febo.com
  3. https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
Well, yes, it was. The first computer I actually owned was a PDP-8, essentially stolen in pieces from the DEC scrapyard. Core memory, who would have imagined that it would actually work? I mean, you could actually see the bits. And it had blinking lights, too. I still insist a computer isn't a real computer without blinking lights. Which leads to yet another little side diversion... there was some really fantastic hardware done back in the '70s and '80s, without the benefit of DSPs, FPGAs, or microprocessors that had more power than a modern wristwatch. I love reconditioning equipment from that era, and it's remarkable what could be done with a handful of discrete components that today is done with a million transistors worth of ICs. My oldest working device is a 5061A from '68, not counting useless things like my saturated-cell voltage standard; my favorite is a tie between my HP 5370A and my Solartron 7081 laboratory dvm. Another little gem (in my opinion at least) is the Polarad 632 spectrum analyzer. They're not exceptional by any modern measure, but they're dirt-cheap and do manage better than 120 db noise floor and a 10 Khz to 2 Ghz range. Plus, they have a nifty discrete IC digital video capture board that does scan storage, scan averaging, and peak detection, all without a single microprocessor in sight. Which reminds me, what happened to all that wonderful European engineering from companies like Datron and Solartron? Their equipment frequently beat the pants off of anything we were doing at that time (as I gaze lovingly at my pair of Datron 4910's). Bill Ezell ---------- They said 'Windows or better' so I used Linux. Dave Mallery wrote: bill but wasn't that hardware beautiful??? (gazes at 11/70 backplane on wall...) dave On Sat, Aug 16, 2008 at 10:10 AM, wje [1]<wje@quackers.net> wrote: You certainly don't need formal training to be a good programmer; I've seen plenty of code from CS grads that's terrible, and very nice code from art majors. In my book, a good program is one one that's organized logically, well documented, and performs the job it was designed to do. A god programmer is someone that produces such programs. That's it. The problem is that, with the advent PCs and easily-accessible programming tools, everyone thinks they can write code, and many can't. Then what you end up with is a tangled mess that's unmaintainable and indecipherable. It's interesting that any number of EE's will take great care in circuit design, but then throw together some poorly-designed code to run their beautiful circuit. But, this has been endemic in the hardware industry for as long as I've been around. Hardware companies frequently have the attitude that it's the hardware that's important and the software is just one of those minor bits that has to get tacked on. This was true even for some companies that should have known better; there were plenty of HW engineers I ran into back in the old Digital days that, even though they were building minicomputers, really considered software an unfortunate requirement that had to be shipped with their beautiful hardware. Ah well, this is really wandering off-topic and my blood pressure's going up. I think I'll go write some C code for an 8-bit micro to calm down. And yes, I use vi. :) Bill Ezell ---------- They said 'Windows or better' so I used Linux. Scott Newell wrote: At 07:36 AM 8/16/2008, wje wrote: I have both EE and CS degrees, and I work in both worlds. In my humble (but completely accurate and stable) opinion, Basic is not a programming language. It's a tool of Satan designed to convince people that they are programmers when they really should stick to their janitorial duties. This is a subset of the general problem that everyone thinks they are programmers, and usually think their code is perfect. But, that's a rant for a different audience. So, how do you tell if you're not a programmer, but pretending to be one? My code is far from perfect, but it can usually be made to get the job done. I try not to cut too many corners, and the ones that I do cut bother me. But when you're the lone programmer on projects, it's hard to know if you're crummy or decent, since there's no one to measure against. (Of course, there's the metric of 'product shipped, product works, bossman happy, paycheck cashed', but that doesn't distinguish between good and bad programmers, just programmers that can fool others along with themselves.) _______________________________________________ time-nuts mailing list -- [2]time-nuts@febo.com To unsubscribe, go to [3]https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts and follow the instructions there. References 1. mailto:wje@quackers.net 2. mailto:time-nuts@febo.com 3. https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
JH
Javier Herrero
Sun, Aug 17, 2008 1:23 PM

I still insist
a computer isn't a real computer without blinking lights.

So you will love the Thinking Machines CM computers... ;)

Regards,

Javier

--

Javier Herrero                            EMAIL: jherrero@hvsistemas.com
HV Sistemas S.L.                          PHONE:        +34 949 336 806
Los Charcones, 17A                        FAX:          +34 949 336 792
19170 El Casar - Guadalajara - Spain      WEB: http://www.hvsistemas.com

> I still insist > a computer isn't a real computer without blinking lights. > So you will love the Thinking Machines CM computers... ;) Regards, Javier -- ------------------------------------------------------------------------ Javier Herrero EMAIL: jherrero@hvsistemas.com HV Sistemas S.L. PHONE: +34 949 336 806 Los Charcones, 17A FAX: +34 949 336 792 19170 El Casar - Guadalajara - Spain WEB: http://www.hvsistemas.com
R
Rex
Mon, Aug 18, 2008 7:05 PM

Bruce Raymond wrote:

My actual contribution to the thread is a link to a free C compiler for
PICs that works pretty well. I have been using the CCS compiler and
switched to this one.

www.sourceboost.com/

Bruce Raymond/ND8I

Bruce,

I've been using the CCS C compiler for several years. The PIC has been
my main micro, with the help provided by the compiler, but I do
sometimes use other micros. At times CCS has driven me nuts with
assorted bugs from version to version, but I continue to use it.

The main reason I use this compiler is because it has functions that
support easy use of many of the features of the PIC. The main one, is
that you can define any two pins as a serial port, even ones without the
standard UART hardware. Other function support gives easy access for
things like timers, delays, interrupts, ADC, PWM, I2C and internal
EEPROM read write.

After a quick browse of the sourceboost pages, I couldn't figure out if
this type of thing is provided in the compiler package (even the top PRO
pay version). I'd be interested to hear comments from anyone about
support for these PIC features in various compilers. The same type of
information for other micro families and compilers welcomed too.

On the general micro discussion -- one thing I have noticed is that the
PICs seem to be more inclined to go berserk than (say) the 8051 types I
have used in the presence of electrical noise.

-Rex

Bruce Raymond wrote: > My actual contribution to the thread is a link to a free C compiler for > PICs that works pretty well. I have been using the CCS compiler and > switched to this one. > > www.sourceboost.com/ > > Bruce Raymond/ND8I > > Bruce, I've been using the CCS C compiler for several years. The PIC has been my main micro, with the help provided by the compiler, but I do sometimes use other micros. At times CCS has driven me nuts with assorted bugs from version to version, but I continue to use it. The main reason I use this compiler is because it has functions that support easy use of many of the features of the PIC. The main one, is that you can define any two pins as a serial port, even ones without the standard UART hardware. Other function support gives easy access for things like timers, delays, interrupts, ADC, PWM, I2C and internal EEPROM read write. After a quick browse of the sourceboost pages, I couldn't figure out if this type of thing is provided in the compiler package (even the top PRO pay version). I'd be interested to hear comments from anyone about support for these PIC features in various compilers. The same type of information for other micro families and compilers welcomed too. On the general micro discussion -- one thing I have noticed is that the PICs seem to be more inclined to go berserk than (say) the 8051 types I have used in the presence of electrical noise. -Rex
CH
Chuck Harris
Sun, Aug 24, 2008 12:54 AM

wje wrote:

As the one who made the first comment about not liking the PIC, I'll
give you my reasons. Yes, they are philosophical, even religious. I'm
also distinguishing between microprocessors (this discussion) and other
variants, such as DSPs, FPLDs, etc.

First, I've used a very large number of different micros over the years
for both 'real' work and my own purposes, starting with the Intel 8008
before it was commercially released. I've used Intel, TI, Motorola,
Zilog, MOS Tech processors of multiple families, and yes, even PICs, all
with wildly varying architectures. These days, given modern development
tools, the architecture of a general-purpose micro really isn't
particularly relevant. It's functionality and support tools that are
important.

I too have a list of micro's and mini's as rich as yours:  PDP8, Univac
11XX, IBM360, PDP-11, 680XX, 8008, 8080, 8085, 8088, 8086, 80186, 80286,
80386, ... DSP-32, 1802, Z80, 8051, 6502,..., and many, many PIC's.  And
with the exception of the first 5, I have been paid to program them all.

Without a doubt, PIC made it possible for many hobbyists to put together
nice projects that they would not necessarily have been able to do
otherwise. My deep-seated revulsion comes from one source, and it's not
the architecture, the company, or the capabilities of the chips. It's
Basic, the language. Until relatively recently, PIC and Basic were
almost synonymous, at least for the masses.

Ah, well, that explains it!  Your knowledge of PIC's is incomplete.  The
BASIC PIC, known as the STAMP, was a simple program running on a PIC that
showed off somethings that you could do with a PIC.  It was not even a
Microchip product.  Parallax took a compiler they wrote, and programmed
it on an early PIC, sold millions of them as the STAMP.

For more information: http://www.parallax.com/tabid/295/Default.aspx

I have never programmed a PIC in anything other than assembler, or C.

The PIC architecture is a RISC machine.  Its memory is split into DATA
and CODE sections.  The entire data section is treated as pages of registers.
All of the I/O is treated as data locations in memory.  It is dirt simple,
having less than 40 instructions.

It is easy to program a PIC in assembler, and using a cross-compiler, it is
reasonably easy for a compiler to generate good PIC code.  I have found
that CCS's C compiler generates PIC code that is as good, or better than
a talented human programmer can write.

I have both EE and CS degrees, and I work in both worlds.

For me it is a BSEE and an MSEE.  I design hardware and software for
embedded systems.  My MS was about 50/50 microwaves and computer architecture.

In my humble

(but completely accurate and stable) opinion, Basic is not a programming
language. It's a tool of Satan designed to convince people that they are
programmers when they really should stick to their janitorial duties.
This is a subset of the general problem that everyone thinks they are
programmers, and usually think their code is perfect. But, that's a rant
for a different audience.

Well, if you feel that way about BASIC, then you must really hate assembler.
You can write good, or bad code in any language.  BASIC is no exception.
If you treat BASIC as what it was intended to be, it is just fine.  It
is a step above a pocket calculator, and should be used as such.  In my
opinion, no BASIC program should be written that is longer than 100 lines.

So, for me, given that there are some very good C development tools for
mainstream processors, and frequently they are free, I just don't use
PICs. As I mentioned earlier, I currently like the Motorola (I mean,
Freescale; these silly name changes are yet another rant) MC68HCxx line;
there's a wide choice of features and they can be flashed easily without
a complicated programmer. The 8-pin xx908QT4 is a buck and does a fine
job for many purposes, and most importantly, you can get a nice C
development environment for the line, which was originally from
CodeWarrior, for free. It also supports the entire line, from 8-bit to
32-bit, and with builtin support for all of the various on-chip
'peripherals'.

That's cool, but do any of them make a 6 pin uC that has some 10 bit ADC's
built in?  Oh, and can get to better than 1% timing accuracy over the full
industrial temperature range without a crystal?  Oh, is it available for
under a buck in small quantities?  No?  Darn!

Even now, I don't think Microchip provides a compiler that supports the
low-end chips, but I haven't checked lately.

Not a valid complaint.  CCS supports everything that Microchip makes, and
their compiler costs around $100.. and it produces tight efficient code.
Plus, their library has native functions to access every feature of
the PIC.  And as an added bonus, the windows version runs nicely under
wine, and there is a linux version available too!

But, when you get right down to it, you really need to pick the proper
solution for your problem. If there was something the PICs provided that
I couldn't get elsewhere, I'd use them. Religion is fine, but getting
the job done is more important.

As I said, show me a 6 pin mini SOIC that has a built in oscillator
that is accurate to better than 1% over the industrial temperature
range (and voltage), has a handful of 10 bit ADC's built in, and can
have a software UART on every pin (but one), and can be easily programmed
in C, and costs under a buck (for full industrial temperature range).

BTW, for those that think you can't do anything with an 8-pin 8-bit
micro, I did one design that supports an LCD, a rotary encoder, a
Hall-effect sensor, and a button. At home, I use the same chip in every
light switch in my house to implement a self-tuning capacitance sense
switch. I even use a couple for a more time-nuts related tasks. One
provides loop control for my GPS/Rb/Quartz standard, and one is used as
a 555 timer replacement in my SmartClock->PC interface. (Ok, I was in a
hurry, needed a pulse stretcher, and I didn't have any 555's lying around)

I don't use 555's anymore, PICS are available that do the job better, and faster,
and with lower power consumption.  And they are more stable frequency wise.

-Chuck Harris

wje wrote: > As the one who made the first comment about not liking the PIC, I'll > give you my reasons. Yes, they are philosophical, even religious. I'm > also distinguishing between microprocessors (this discussion) and other > variants, such as DSPs, FPLDs, etc. > > First, I've used a very large number of different micros over the years > for both 'real' work and my own purposes, starting with the Intel 8008 > before it was commercially released. I've used Intel, TI, Motorola, > Zilog, MOS Tech processors of multiple families, and yes, even PICs, all > with wildly varying architectures. These days, given modern development > tools, the architecture of a general-purpose micro really isn't > particularly relevant. It's functionality and support tools that are > important. I too have a list of micro's and mini's as rich as yours: PDP8, Univac 11XX, IBM360, PDP-11, 680XX, 8008, 8080, 8085, 8088, 8086, 80186, 80286, 80386, ... DSP-32, 1802, Z80, 8051, 6502,..., and many, many PIC's. And with the exception of the first 5, I have been paid to program them all. > Without a doubt, PIC made it possible for many hobbyists to put together > nice projects that they would not necessarily have been able to do > otherwise. My deep-seated revulsion comes from one source, and it's not > the architecture, the company, or the capabilities of the chips. It's > Basic, the language. Until relatively recently, PIC and Basic were > almost synonymous, at least for the masses. Ah, well, that explains it! Your knowledge of PIC's is incomplete. The BASIC PIC, known as the STAMP, was a simple program running on a PIC that showed off somethings that you could do with a PIC. It was not even a Microchip product. Parallax took a compiler they wrote, and programmed it on an early PIC, sold millions of them as the STAMP. For more information: http://www.parallax.com/tabid/295/Default.aspx I have never programmed a PIC in anything other than assembler, or C. The PIC architecture is a RISC machine. Its memory is split into DATA and CODE sections. The entire data section is treated as pages of registers. All of the I/O is treated as data locations in memory. It is dirt simple, having less than 40 instructions. It is easy to program a PIC in assembler, and using a cross-compiler, it is reasonably easy for a compiler to generate good PIC code. I have found that CCS's C compiler generates PIC code that is as good, or better than a talented human programmer can write. > I have both EE and CS degrees, and I work in both worlds. For me it is a BSEE and an MSEE. I design hardware and software for embedded systems. My MS was about 50/50 microwaves and computer architecture. In my humble > (but completely accurate and stable) opinion, Basic is not a programming > language. It's a tool of Satan designed to convince people that they are > programmers when they really should stick to their janitorial duties. > This is a subset of the general problem that everyone thinks they are > programmers, and usually think their code is perfect. But, that's a rant > for a different audience. Well, if you feel that way about BASIC, then you must really hate assembler. You can write good, or bad code in any language. BASIC is no exception. If you treat BASIC as what it was intended to be, it is just fine. It is a step above a pocket calculator, and should be used as such. In my opinion, no BASIC program should be written that is longer than 100 lines. > So, for me, given that there are some very good C development tools for > mainstream processors, and frequently they are free, I just don't use > PICs. As I mentioned earlier, I currently like the Motorola (I mean, > Freescale; these silly name changes are yet another rant) MC68HCxx line; > there's a wide choice of features and they can be flashed easily without > a complicated programmer. The 8-pin xx908QT4 is a buck and does a fine > job for many purposes, and most importantly, you can get a nice C > development environment for the line, which was originally from > CodeWarrior, for free. It also supports the entire line, from 8-bit to > 32-bit, and with builtin support for all of the various on-chip > 'peripherals'. That's cool, but do any of them make a 6 pin uC that has some 10 bit ADC's built in? Oh, and can get to better than 1% timing accuracy over the full industrial temperature range without a crystal? Oh, is it available for under a buck in small quantities? No? Darn! > Even now, I don't think Microchip provides a compiler that supports the > low-end chips, but I haven't checked lately. Not a valid complaint. CCS supports everything that Microchip makes, and their compiler costs around $100.. and it produces tight efficient code. Plus, their library has native functions to access every feature of the PIC. And as an added bonus, the windows version runs nicely under wine, and there is a linux version available too! > But, when you get right down to it, you really need to pick the proper > solution for your problem. If there was something the PICs provided that > I couldn't get elsewhere, I'd use them. Religion is fine, but getting > the job done is more important. As I said, show me a 6 pin mini SOIC that has a built in oscillator that is accurate to better than 1% over the industrial temperature range (and voltage), has a handful of 10 bit ADC's built in, and can have a software UART on every pin (but one), and can be easily programmed in C, and costs under a buck (for full industrial temperature range). > > BTW, for those that think you can't do anything with an 8-pin 8-bit > micro, I did one design that supports an LCD, a rotary encoder, a > Hall-effect sensor, and a button. At home, I use the same chip in every > light switch in my house to implement a self-tuning capacitance sense > switch. I even use a couple for a more time-nuts related tasks. One > provides loop control for my GPS/Rb/Quartz standard, and one is used as > a 555 timer replacement in my SmartClock->PC interface. (Ok, I was in a > hurry, needed a pulse stretcher, and I didn't have any 555's lying around) I don't use 555's anymore, PICS are available that do the job better, and faster, and with lower power consumption. And they are more stable frequency wise. -Chuck Harris
CH
Chuck Harris
Sun, Aug 24, 2008 12:56 AM

Robert Vassar wrote:

As a member of the "brain damaged by Basic" generation, I mostly
agree with Bill's comments regarding it's use. Yet I still keep the
public domain 8052AH-BASIC image in my '51 code directory, and have
fond memories of it's use.  The PIC is not alone in propagating that
mistake, though they seem to be the last.

Microchip never made the STAMP.  That was Parallax.  They wrote a BASIC
interpreter for the PIC, and sold a PIC that was preprogrammed with the
BASIC interpreter.  They still do: http://www.parallax.com/tabid/295/Default.aspx

-Chuck Harris

Robert Vassar wrote: > As a member of the "brain damaged by Basic" generation, I mostly > agree with Bill's comments regarding it's use. Yet I still keep the > public domain 8052AH-BASIC image in my '51 code directory, and have > fond memories of it's use. The PIC is not alone in propagating that > mistake, though they seem to be the last. Microchip never made the STAMP. That was Parallax. They wrote a BASIC interpreter for the PIC, and sold a PIC that was preprogrammed with the BASIC interpreter. They still do: http://www.parallax.com/tabid/295/Default.aspx -Chuck Harris
BC
Brooke Clarke
Thu, Sep 4, 2008 9:17 PM

Hi Chuck:

The Harvard architecture used in the PIC has a number of advantages when
compared to the more common Von Neumann architecture, speed being of them.
http://en.wikipedia.org/wiki/Harvard_architecture
http://en.wikipedia.org/wiki/Von_Neumann_architecture

A not uncommon problem with Von Neumann computers is reading data as an
instruction (since they share the same memory space).

The HP Rocky Mountain Basic is really an operating system and language all in
one.  I've been paid to write hundreds of programs in RMB, many of them near
the line number limit of the language.  It has many features not found in
modern languages.

That let me to look into metrics for software and I found a couple of Microsoft
Books:

Writing Solid Code
http://www.amazon.com/gp/product/1556155514/sr=1-5/qid=1154816669/ref=sr_1_5/104-7728798-0707156?ie=UTF8&s=books

Code Complete
http://www.amazon.com/gp/product/0735619670/sr=1-1/qid=1154816669/ref=sr_1_1/104-7728798-0707156?ie=UTF8&s=books

One example of good programming style is that the span of a loop is small.  For
example you should be able to print the program so that each module fits on a
one side of a single sheet of paper.

Have Fun,

Brooke Clarke
http://www.prc68.com/P/Prod.html  Products I make and sell
http://www.prc68.com/Alpha.shtml  All my web pages listed based on html name
http://www.PRC68.com
http://www.precisionclock.com
http://www.prc68.com/I/WebCam2.shtml 24/7 Sky-Weather-Astronomy Web Cam

Chuck Harris wrote:

wje wrote:

As the one who made the first comment about not liking the PIC, I'll
give you my reasons. Yes, they are philosophical, even religious. I'm
also distinguishing between microprocessors (this discussion) and other
variants, such as DSPs, FPLDs, etc.

First, I've used a very large number of different micros over the years
for both 'real' work and my own purposes, starting with the Intel 8008
before it was commercially released. I've used Intel, TI, Motorola,
Zilog, MOS Tech processors of multiple families, and yes, even PICs, all
with wildly varying architectures. These days, given modern development
tools, the architecture of a general-purpose micro really isn't
particularly relevant. It's functionality and support tools that are
important.

I too have a list of micro's and mini's as rich as yours:  PDP8, Univac
11XX, IBM360, PDP-11, 680XX, 8008, 8080, 8085, 8088, 8086, 80186, 80286,
80386, ... DSP-32, 1802, Z80, 8051, 6502,..., and many, many PIC's.  And
with the exception of the first 5, I have been paid to program them all.

Without a doubt, PIC made it possible for many hobbyists to put together
nice projects that they would not necessarily have been able to do
otherwise. My deep-seated revulsion comes from one source, and it's not
the architecture, the company, or the capabilities of the chips. It's
Basic, the language. Until relatively recently, PIC and Basic were
almost synonymous, at least for the masses.

Ah, well, that explains it!  Your knowledge of PIC's is incomplete.  The
BASIC PIC, known as the STAMP, was a simple program running on a PIC that
showed off somethings that you could do with a PIC.  It was not even a
Microchip product.  Parallax took a compiler they wrote, and programmed
it on an early PIC, sold millions of them as the STAMP.

For more information: http://www.parallax.com/tabid/295/Default.aspx

I have never programmed a PIC in anything other than assembler, or C.

The PIC architecture is a RISC machine.  Its memory is split into DATA
and CODE sections.  The entire data section is treated as pages of registers.
All of the I/O is treated as data locations in memory.  It is dirt simple,
having less than 40 instructions.

It is easy to program a PIC in assembler, and using a cross-compiler, it is
reasonably easy for a compiler to generate good PIC code.  I have found
that CCS's C compiler generates PIC code that is as good, or better than
a talented human programmer can write.

I have both EE and CS degrees, and I work in both worlds.

For me it is a BSEE and an MSEE.  I design hardware and software for
embedded systems.  My MS was about 50/50 microwaves and computer architecture.

In my humble

(but completely accurate and stable) opinion, Basic is not a programming
language. It's a tool of Satan designed to convince people that they are
programmers when they really should stick to their janitorial duties.
This is a subset of the general problem that everyone thinks they are
programmers, and usually think their code is perfect. But, that's a rant
for a different audience.

Well, if you feel that way about BASIC, then you must really hate assembler.
You can write good, or bad code in any language.  BASIC is no exception.
If you treat BASIC as what it was intended to be, it is just fine.  It
is a step above a pocket calculator, and should be used as such.  In my
opinion, no BASIC program should be written that is longer than 100 lines.

So, for me, given that there are some very good C development tools for
mainstream processors, and frequently they are free, I just don't use
PICs. As I mentioned earlier, I currently like the Motorola (I mean,
Freescale; these silly name changes are yet another rant) MC68HCxx line;
there's a wide choice of features and they can be flashed easily without
a complicated programmer. The 8-pin xx908QT4 is a buck and does a fine
job for many purposes, and most importantly, you can get a nice C
development environment for the line, which was originally from
CodeWarrior, for free. It also supports the entire line, from 8-bit to
32-bit, and with builtin support for all of the various on-chip
'peripherals'.

That's cool, but do any of them make a 6 pin uC that has some 10 bit ADC's
built in?  Oh, and can get to better than 1% timing accuracy over the full
industrial temperature range without a crystal?  Oh, is it available for
under a buck in small quantities?  No?  Darn!

Even now, I don't think Microchip provides a compiler that supports the
low-end chips, but I haven't checked lately.

Not a valid complaint.  CCS supports everything that Microchip makes, and
their compiler costs around $100.. and it produces tight efficient code.
Plus, their library has native functions to access every feature of
the PIC.  And as an added bonus, the windows version runs nicely under
wine, and there is a linux version available too!

But, when you get right down to it, you really need to pick the proper
solution for your problem. If there was something the PICs provided that
I couldn't get elsewhere, I'd use them. Religion is fine, but getting
the job done is more important.

As I said, show me a 6 pin mini SOIC that has a built in oscillator
that is accurate to better than 1% over the industrial temperature
range (and voltage), has a handful of 10 bit ADC's built in, and can
have a software UART on every pin (but one), and can be easily programmed
in C, and costs under a buck (for full industrial temperature range).

BTW, for those that think you can't do anything with an 8-pin 8-bit
micro, I did one design that supports an LCD, a rotary encoder, a
Hall-effect sensor, and a button. At home, I use the same chip in every
light switch in my house to implement a self-tuning capacitance sense
switch. I even use a couple for a more time-nuts related tasks. One
provides loop control for my GPS/Rb/Quartz standard, and one is used as
a 555 timer replacement in my SmartClock->PC interface. (Ok, I was in a
hurry, needed a pulse stretcher, and I didn't have any 555's lying around)

I don't use 555's anymore, PICS are available that do the job better, and faster,
and with lower power consumption.  And they are more stable frequency wise.

-Chuck Harris


time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.

Hi Chuck: The Harvard architecture used in the PIC has a number of advantages when compared to the more common Von Neumann architecture, speed being of them. http://en.wikipedia.org/wiki/Harvard_architecture http://en.wikipedia.org/wiki/Von_Neumann_architecture A not uncommon problem with Von Neumann computers is reading data as an instruction (since they share the same memory space). The HP Rocky Mountain Basic is really an operating system and language all in one. I've been paid to write hundreds of programs in RMB, many of them near the line number limit of the language. It has many features not found in modern languages. That let me to look into metrics for software and I found a couple of Microsoft Books: Writing Solid Code http://www.amazon.com/gp/product/1556155514/sr=1-5/qid=1154816669/ref=sr_1_5/104-7728798-0707156?ie=UTF8&s=books Code Complete http://www.amazon.com/gp/product/0735619670/sr=1-1/qid=1154816669/ref=sr_1_1/104-7728798-0707156?ie=UTF8&s=books One example of good programming style is that the span of a loop is small. For example you should be able to print the program so that each module fits on a one side of a single sheet of paper. Have Fun, Brooke Clarke http://www.prc68.com/P/Prod.html Products I make and sell http://www.prc68.com/Alpha.shtml All my web pages listed based on html name http://www.PRC68.com http://www.precisionclock.com http://www.prc68.com/I/WebCam2.shtml 24/7 Sky-Weather-Astronomy Web Cam Chuck Harris wrote: > wje wrote: >> As the one who made the first comment about not liking the PIC, I'll >> give you my reasons. Yes, they are philosophical, even religious. I'm >> also distinguishing between microprocessors (this discussion) and other >> variants, such as DSPs, FPLDs, etc. >> >> First, I've used a very large number of different micros over the years >> for both 'real' work and my own purposes, starting with the Intel 8008 >> before it was commercially released. I've used Intel, TI, Motorola, >> Zilog, MOS Tech processors of multiple families, and yes, even PICs, all >> with wildly varying architectures. These days, given modern development >> tools, the architecture of a general-purpose micro really isn't >> particularly relevant. It's functionality and support tools that are >> important. > > I too have a list of micro's and mini's as rich as yours: PDP8, Univac > 11XX, IBM360, PDP-11, 680XX, 8008, 8080, 8085, 8088, 8086, 80186, 80286, > 80386, ... DSP-32, 1802, Z80, 8051, 6502,..., and many, many PIC's. And > with the exception of the first 5, I have been paid to program them all. > >> Without a doubt, PIC made it possible for many hobbyists to put together >> nice projects that they would not necessarily have been able to do >> otherwise. My deep-seated revulsion comes from one source, and it's not >> the architecture, the company, or the capabilities of the chips. It's >> Basic, the language. Until relatively recently, PIC and Basic were >> almost synonymous, at least for the masses. > > Ah, well, that explains it! Your knowledge of PIC's is incomplete. The > BASIC PIC, known as the STAMP, was a simple program running on a PIC that > showed off somethings that you could do with a PIC. It was not even a > Microchip product. Parallax took a compiler they wrote, and programmed > it on an early PIC, sold millions of them as the STAMP. > > For more information: http://www.parallax.com/tabid/295/Default.aspx > > I have never programmed a PIC in anything other than assembler, or C. > > The PIC architecture is a RISC machine. Its memory is split into DATA > and CODE sections. The entire data section is treated as pages of registers. > All of the I/O is treated as data locations in memory. It is dirt simple, > having less than 40 instructions. > > It is easy to program a PIC in assembler, and using a cross-compiler, it is > reasonably easy for a compiler to generate good PIC code. I have found > that CCS's C compiler generates PIC code that is as good, or better than > a talented human programmer can write. > >> I have both EE and CS degrees, and I work in both worlds. > > For me it is a BSEE and an MSEE. I design hardware and software for > embedded systems. My MS was about 50/50 microwaves and computer architecture. > > In my humble >> (but completely accurate and stable) opinion, Basic is not a programming >> language. It's a tool of Satan designed to convince people that they are >> programmers when they really should stick to their janitorial duties. >> This is a subset of the general problem that everyone thinks they are >> programmers, and usually think their code is perfect. But, that's a rant >> for a different audience. > > Well, if you feel that way about BASIC, then you must really hate assembler. > You can write good, or bad code in any language. BASIC is no exception. > If you treat BASIC as what it was intended to be, it is just fine. It > is a step above a pocket calculator, and should be used as such. In my > opinion, no BASIC program should be written that is longer than 100 lines. > >> So, for me, given that there are some very good C development tools for >> mainstream processors, and frequently they are free, I just don't use >> PICs. As I mentioned earlier, I currently like the Motorola (I mean, >> Freescale; these silly name changes are yet another rant) MC68HCxx line; >> there's a wide choice of features and they can be flashed easily without >> a complicated programmer. The 8-pin xx908QT4 is a buck and does a fine >> job for many purposes, and most importantly, you can get a nice C >> development environment for the line, which was originally from >> CodeWarrior, for free. It also supports the entire line, from 8-bit to >> 32-bit, and with builtin support for all of the various on-chip >> 'peripherals'. > > That's cool, but do any of them make a 6 pin uC that has some 10 bit ADC's > built in? Oh, and can get to better than 1% timing accuracy over the full > industrial temperature range without a crystal? Oh, is it available for > under a buck in small quantities? No? Darn! > >> Even now, I don't think Microchip provides a compiler that supports the >> low-end chips, but I haven't checked lately. > > Not a valid complaint. CCS supports everything that Microchip makes, and > their compiler costs around $100.. and it produces tight efficient code. > Plus, their library has native functions to access every feature of > the PIC. And as an added bonus, the windows version runs nicely under > wine, and there is a linux version available too! > >> But, when you get right down to it, you really need to pick the proper >> solution for your problem. If there was something the PICs provided that >> I couldn't get elsewhere, I'd use them. Religion is fine, but getting >> the job done is more important. > > As I said, show me a 6 pin mini SOIC that has a built in oscillator > that is accurate to better than 1% over the industrial temperature > range (and voltage), has a handful of 10 bit ADC's built in, and can > have a software UART on every pin (but one), and can be easily programmed > in C, and costs under a buck (for full industrial temperature range). > >> BTW, for those that think you can't do anything with an 8-pin 8-bit >> micro, I did one design that supports an LCD, a rotary encoder, a >> Hall-effect sensor, and a button. At home, I use the same chip in every >> light switch in my house to implement a self-tuning capacitance sense >> switch. I even use a couple for a more time-nuts related tasks. One >> provides loop control for my GPS/Rb/Quartz standard, and one is used as >> a 555 timer replacement in my SmartClock->PC interface. (Ok, I was in a >> hurry, needed a pulse stretcher, and I didn't have any 555's lying around) > > I don't use 555's anymore, PICS are available that do the job better, and faster, > and with lower power consumption. And they are more stable frequency wise. > > -Chuck Harris > > > _______________________________________________ > time-nuts mailing list -- time-nuts@febo.com > To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts > and follow the instructions there. >
RV
Robert Vassar
Thu, Sep 4, 2008 10:25 PM

On Sep 4, 2008, at 4:17 PM, Brooke Clarke wrote:

For
example you should be able to print the program so that each module
fits on a
one side of a single sheet of paper.

That is a highly language dependent metric.  I can't see this
applying to assembly.  I spend a lot of time coding Perl at work, and
I shudder to think what would happen if this was part of a coding
standard.  My colleagues would take this as some kind of
challenge...  :-)

On Sep 4, 2008, at 4:17 PM, Brooke Clarke wrote: > For > example you should be able to print the program so that each module > fits on a > one side of a single sheet of paper. > > That is a highly language dependent metric. I can't see this applying to assembly. I spend a lot of time coding Perl at work, and I shudder to think what would happen if this was part of a coding standard. My colleagues would take this as some kind of challenge... :-)
BC
Brooke Clarke
Thu, Sep 4, 2008 10:49 PM

Hi Robert:

Yes it applies to assembly.  I have 100+ page PIC programs that meet this
requirement.  You might think about span of control to see how you can do it.

Microchip introduced a bug into their assembler some time ago and it is not
able to print a PAGE (form feed) assembler directive.  But the Form Feed
commands are in the  listing file, so you can use Word to print the listing
file and get page breaks for each module.

Having only one module on a page makes it much easier to read the code because
you are not seeing unrelated information and you don't have to turn a a page to
see it all.

The use of indent also goes a long way to clarify code.  The Microchip
assembler has settings that allow this to happen automatically.  In addition
they have provision to color code different types of words in the assembly
listing and that also makes the meaning clearer.  In one of the Microsoft books
on programming they go to great lengths to define the data type as part of it's
name but the color coding does that in Microchip assembly.

Here is the assembler source file for the 16F88 to blink some LEDs.  It's a pdf
made from the assembly source so has the colors but the page breaks do not show
up:  http://www.prc68.com/I/pdf/Brooke-16F88_LED.pdf

Have Fun,

Brooke Clarke
http://www.prc68.com/P/Prod.html  Products I make and sell
http://www.prc68.com/Alpha.shtml  All my web pages listed based on html name
http://www.PRC68.com
http://www.precisionclock.com
http://www.prc68.com/I/WebCam2.shtml 24/7 Sky-Weather-Astronomy Web Cam

Robert Vassar wrote:

On Sep 4, 2008, at 4:17 PM, Brooke Clarke wrote:

For
example you should be able to print the program so that each module
fits on a
one side of a single sheet of paper.

That is a highly language dependent metric.  I can't see this
applying to assembly.  I spend a lot of time coding Perl at work, and
I shudder to think what would happen if this was part of a coding
standard.  My colleagues would take this as some kind of
challenge...  :-)


time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.

Hi Robert: Yes it applies to assembly. I have 100+ page PIC programs that meet this requirement. You might think about span of control to see how you can do it. Microchip introduced a bug into their assembler some time ago and it is not able to print a PAGE (form feed) assembler directive. But the Form Feed commands are in the listing file, so you can use Word to print the listing file and get page breaks for each module. Having only one module on a page makes it much easier to read the code because you are not seeing unrelated information and you don't have to turn a a page to see it all. The use of indent also goes a long way to clarify code. The Microchip assembler has settings that allow this to happen automatically. In addition they have provision to color code different types of words in the assembly listing and that also makes the meaning clearer. In one of the Microsoft books on programming they go to great lengths to define the data type as part of it's name but the color coding does that in Microchip assembly. Here is the assembler source file for the 16F88 to blink some LEDs. It's a pdf made from the assembly source so has the colors but the page breaks do not show up: http://www.prc68.com/I/pdf/Brooke-16F88_LED.pdf Have Fun, Brooke Clarke http://www.prc68.com/P/Prod.html Products I make and sell http://www.prc68.com/Alpha.shtml All my web pages listed based on html name http://www.PRC68.com http://www.precisionclock.com http://www.prc68.com/I/WebCam2.shtml 24/7 Sky-Weather-Astronomy Web Cam Robert Vassar wrote: > On Sep 4, 2008, at 4:17 PM, Brooke Clarke wrote: > >> For >> example you should be able to print the program so that each module >> fits on a >> one side of a single sheet of paper. >> >> > > > That is a highly language dependent metric. I can't see this > applying to assembly. I spend a lot of time coding Perl at work, and > I shudder to think what would happen if this was part of a coding > standard. My colleagues would take this as some kind of > challenge... :-) > > > > > > > > _______________________________________________ > time-nuts mailing list -- time-nuts@febo.com > To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts > and follow the instructions there. >
DC
David C. Partridge
Fri, Sep 5, 2008 6:00 AM

Not quite as horrid as the guys who felt I necessary to write APL
"one-liners".  This elevated obscurity to a whole new art form.

D.

-----Original Message-----
From: time-nuts-bounces@febo.com [mailto:time-nuts-bounces@febo.com] On
Behalf Of Robert Vassar
Sent: 04 September 2008 23:26
To: Discussion of precise time and frequency measurement
Subject: Re: [time-nuts] I want a good micro-controller

That is a highly language dependent metric.  I can't see this applying to
assembly.  I spend a lot of time coding Perl at work, and I shudder to think
what would happen if this was part of a coding standard.  My colleagues
would take this as some kind of challenge...  :-)


time-nuts mailing list -- time-nuts@febo.com To unsubscribe, go to
https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.

Not quite as horrid as the guys who felt I necessary to write APL "one-liners". This elevated obscurity to a whole new art form. D. -----Original Message----- From: time-nuts-bounces@febo.com [mailto:time-nuts-bounces@febo.com] On Behalf Of Robert Vassar Sent: 04 September 2008 23:26 To: Discussion of precise time and frequency measurement Subject: Re: [time-nuts] I want a good micro-controller That is a highly language dependent metric. I can't see this applying to assembly. I spend a lot of time coding Perl at work, and I shudder to think what would happen if this was part of a coding standard. My colleagues would take this as some kind of challenge... :-) _______________________________________________ time-nuts mailing list -- time-nuts@febo.com To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts and follow the instructions there.
DJ
Didier Juges
Fri, Sep 5, 2008 11:55 AM

Google "Obfuscated code contest" for fun :-)

-----Original Message-----
From: time-nuts-bounces@febo.com
[mailto:time-nuts-bounces@febo.com] On Behalf Of David C. Partridge
Sent: Friday, September 05, 2008 1:00 AM
To: 'Discussion of precise time and frequency measurement'
Subject: Re: [time-nuts] I want a good micro-controller

Not quite as horrid as the guys who felt I necessary to
write APL "one-liners".  This elevated obscurity to a whole
new art form.

D.

-----Original Message-----
From: time-nuts-bounces@febo.com
[mailto:time-nuts-bounces@febo.com] On Behalf Of Robert Vassar
Sent: 04 September 2008 23:26
To: Discussion of precise time and frequency measurement
Subject: Re: [time-nuts] I want a good micro-controller

That is a highly language dependent metric.  I can't see this
applying to assembly.  I spend a lot of time coding Perl at
work, and I shudder to think what would happen if this was
part of a coding standard.  My colleagues would take this as
some kind of challenge...  :-)

Google "Obfuscated code contest" for fun :-) > -----Original Message----- > From: time-nuts-bounces@febo.com > [mailto:time-nuts-bounces@febo.com] On Behalf Of David C. Partridge > Sent: Friday, September 05, 2008 1:00 AM > To: 'Discussion of precise time and frequency measurement' > Subject: Re: [time-nuts] I want a good micro-controller > > Not quite as horrid as the guys who felt I necessary to > write APL "one-liners". This elevated obscurity to a whole > new art form. > > D. > > -----Original Message----- > From: time-nuts-bounces@febo.com > [mailto:time-nuts-bounces@febo.com] On Behalf Of Robert Vassar > Sent: 04 September 2008 23:26 > To: Discussion of precise time and frequency measurement > Subject: Re: [time-nuts] I want a good micro-controller > > That is a highly language dependent metric. I can't see this > applying to assembly. I spend a lot of time coding Perl at > work, and I shudder to think what would happen if this was > part of a coding standard. My colleagues would take this as > some kind of challenge... :-) > > > >