The point is we are not talking about complex projects.
What’s a simple project? How do you guarantee it? In my world, can’t be assumed software projects will cooperate by staying “simple”! They grow or have requirements that might be hard to fit in the space available or get to run fast enough. I guess Robert hasn’t been burned yet, but that’s luck rather than judgement.
I’d argue that an ardunio and it’s IDE is not really a microcontroller it’s a microcomputer. The DUE for example has a 32 bit ARM Cortex processor. IT uses a C++ based Object Orientated languge. Great if you want to learn programming and move on to advanced progects with wed interfaces colour displays etc etc.
No, they are microcontrollers. Admittedly the difference is blurred, but I’d say a microcontroller is a single task device providing built-in direct access to IO pins, whereas a microcomputer is a multi-tasking device that connects to the outside world via buses. But a powerful microcontroller can implement microprocessor-like applications, and microprocessors can do IO by adding peripherals to a bus. Common enough in mobile phones, but rare in hobby land. The raspberry Pi is an example: runs a full-blown multi-user operating system AND programmers can read/write hardware pins.
Ages ago, not realising the Microset existed, I developed an 8-bit microcontroller clock analyser based on an Arduino Mega 2560. Data collection was simple enough and I’d be very surprised if the same couldn’t be done with PBY or Micromite. Temperature, pressure, and humidity taken from a BMP380 sensor; pendulum times measured by timing audible ticks or with an interrupted beam; accurate date/time read from a GPS, plus GPS seconds used to sync real time and measure the Mega’s actual crystal frequency. Data was logged to a serial port or an SD-card. Main difficulty was the pendulum and GPS inputs are both interrupts, so the code is time critical.
Collecting the data was only half the project. The Mega also managed user controls, calculated basic statistics, and provided a graphical display. Processing the data and displaying the results added another level of time critical complexity. I think Robert would be hard pressed to implement the equivalent in PBY, and might be obliged to switch to the more capable Micromite. (And learn their version of BASIC!)
I was confident Arduino wouldn’t hit the buffers. But, if I couldn’t get it to work on a Mega with C/C++, faster boards are available, or I could switch to a Nucleo, or one of the big PIC chips. C is more portable than BASIC.
Ifyou just want to acheive a simple task then PBP3 has a lot lower learning curve especially if you used home computers in the 80’s and 90’s as a suspect many of us did.
I repeat the warning! Having “a lot lower learning curve” usually means too simple for real work. And beginners are very badly placed to judge if what they want to do is simple or not. If there’s any danger whatever that projects will become challenging, then better to use the right tools for the job. BASIC is designed to be easy to use, but over a limited range and it lacks stamina. C/C++ is a system programming language designed for low-level efficiency. Extremely versatile with few limitations, the cost being it’s harder to learn. Readers of this thread might like to compare the PWM examples written in PBY, Micromite BASIC, and C. Is C really harder?
I find the Ardunio an similar libaries a mixed blessing. Thet make things easy but don’t help understanding of fundamentals and can lead to bloated software.
Nope! The libraries are all open-source. You can study the code to see exactly how they work. Off hand, I can’t think of any that are unjustifiably bloated. They make things easy because someone else wrote and tested them. Saves and enormous amount of time compared with sitting down with a datasheet and writing code from scratch!
For what it’s worth, I have wide professional experience of languages, over 20 of them. I’ve been paid money to write code in ICL mainframe BASIC, GW-BASIC, MS-BASIC, PickBASIC, and VisualBASIC. At home, TinyBASIC, CrystalBASIC, MS-BASIC, GAMBAS and various microcontroller BASICs. Of these, I only rate VisualBASIC and GAMBAS, which are good for developing GUIs quickly.
My advice, don’t fixate on what’s good about computer languages, worry about what they’re bad at! What they struggle with causes all the trouble, not the easy bits!
At the moment, though there are good alternatives, the best language for systems and embedded work is still C/C++ and the best language for new learners is Python. Knowing these will get you a job. Almost no one wants a BASIC programmer!
Finally, what language do Microchip recommend? It’s not BASIC…
Dave
Dave
Robert.