<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.arm.com/utility/feedstylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>how to use the interrupt keyword in 8051 C code.</title><link>https://community.arm.com/developer/tools-software/tools/f/keil-forum/37164/how-to-use-the-interrupt-keyword-in-8051-c-code</link><description> 
Hi, 

 
There is an application note on using the interrupt vectors in C51
c programming for 8051. It goes like this- 

 
unsigned int int_count; 
unsigned char second; 

 
void timer0 (void) interrupt 1 using 2 
{ if (++int_count == 4000) { /* count</description><dc:language>en-US</dc:language><generator>Telligent Community 10</generator><item><title>RE: how to use the interrupt keyword in 8051 C code.</title><link>https://community.arm.com/thread/158608?ContentTypeID=1</link><pubDate>Sat, 17 Feb 2007 12:06:29 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:0c3ee43c-36cf-45a9-be42-bd16e0c09f92</guid><dc:creator>Mrunmoy Samal</dc:creator><description>&lt;p&gt;&lt;p&gt;
Wonderful!&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: how to use the interrupt keyword in 8051 C code.</title><link>https://community.arm.com/thread/158578?ContentTypeID=1</link><pubDate>Fri, 16 Feb 2007 12:10:21 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:b4cfc26c-aa93-4825-abf0-346d07a7c5af</guid><dc:creator>Jonny Doin</dc:creator><description>&lt;p&gt;&lt;p&gt;
A few recommendations:&lt;/p&gt;

&lt;p&gt;
- Although embedded design can look like &amp;#39;see one see all&amp;#39;, mcu
cores are widely different, and require quite different design
approaches. Have this always in mind. Never try to port raw code, but
port algorithms and knowledge instead. You cannot blindly apply
specific techniques of one chip to another, but you can apply your
systematic learning approach to every new technology.&lt;/p&gt;

&lt;p&gt;
- Always read ALL the chip datasheets, from start to end. The
datasheet is your best friend, keep it at ARM&amp;#39;s length;&lt;/p&gt;

&lt;p&gt;
- Get the silicon Errata for ALL the chips on your design. Every
mcu chip has at least one Errata sheet. If you can&amp;#39;t find it, be
suspicious;&lt;/p&gt;

&lt;p&gt;
- Get to know your mcu core at an intimate level. Learn its
assembly language. Learn how data is organized in its memory, the
memory layout, special areas and rules. It *IS* important to know the
chip at low-level, even if you will only program in C. Get to know,
for example, how parameters are passed in functions, and write
functions that make the best usage of the procedure call
standard;&lt;/p&gt;

&lt;p&gt;
- Get to know the gory details of the interrupt processing of your
chip and of your compiler, special function registers and peripheral
setup and capabilities. At systems-level design, you must know what
to expect from them.&lt;/p&gt;

&lt;p&gt;
- Get a deeper understanding of how your toolchain works. Study
small sequences of compiled code at several optimization levels to
get a grasp of what is the best style of C to generate the best
machine code. Good developers write efficient C code because they
know which style translates to lean machine code for the compiler/cpu
at hand.&lt;/p&gt;

&lt;p&gt;
- Pay attention to your system &lt;b&gt;architecture&lt;/b&gt; at the design
stage. This is a hardware/software constraint. Try to secure good
boundary conditions for your problem, and then take into account the
combined hardware/software behavior, latencies and data path. A
well-planned architecture will save you a life of maintenance and
reimplementation in the future, not to say your job position.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: how to use the interrupt keyword in 8051 C code.</title><link>https://community.arm.com/thread/158550?ContentTypeID=1</link><pubDate>Fri, 16 Feb 2007 11:43:22 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:b1f30e84-ef9e-4fc1-836b-66a639f15201</guid><dc:creator>Jonny Doin</dc:creator><description>&lt;p&gt;&lt;p&gt;
Jay Daniel said: &lt;i&gt;&amp;quot;what separates truly great embedded systems
designers from mediocre ones is their ability to think about hardware
and software seamlessly.&amp;quot;&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
That is quite true. Quite many control operations can be expressed
as analog circuitry, digital circuitry, mixed electronics, pure
software and mixed hardware/software. Knowing where to draw the
interface line is a good design asset. Example: In a recent project a
synthesized chopped stepper motor drive waveform started the design
in pure software and eventually part of the chopping processing was
moved to analog hardware to free up mcu core processing bandwidth and
increase motor current ripple stability.&lt;/p&gt;

&lt;p&gt;
&lt;i&gt;&amp;quot;Your hardware design background will be invaluable to you in
your understanding of embedded software design.&amp;quot;&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
I agree. I have found that it is harder for people that come from
high-level software development to become proficient in embedded
systems design than it is for hardware design engineers to become
good at systems design. Nonetheless, you must not overlook a good
base of software engineering, data structures, failsafe design,
event-driven modeling, and control theory, just to name a few
&amp;#39;software&amp;#39; skills you need to master.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: how to use the interrupt keyword in 8051 C code.</title><link>https://community.arm.com/thread/158509?ContentTypeID=1</link><pubDate>Fri, 16 Feb 2007 10:10:10 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:29f56310-7fce-40fc-a176-a56ba71e955a</guid><dc:creator>Per Westermark</dc:creator><description>&lt;p&gt;&lt;p&gt;
&lt;i&gt;After all, everything starts small and grows big.&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
Like the list of open bugz in Bugzilla? :)&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: how to use the interrupt keyword in 8051 C code.</title><link>https://community.arm.com/thread/158508?ContentTypeID=1</link><pubDate>Fri, 16 Feb 2007 10:06:35 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:091feccc-34c5-4769-8b23-4b32fbd179fb</guid><dc:creator>Per Westermark</dc:creator><description>&lt;p&gt;&lt;p&gt;
&lt;i&gt;Actually, this forum should only be used for discussions
specifically about Keil products...&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
But a higher number of high-quality technical discussions that are
handled on _this_ forum, will result in a correspondingly fewer
number of people who will visit other forums where they may
accidentaly get recommendations to look at products by IA&amp;lt;beep&amp;gt;
or similar.&lt;/p&gt;

&lt;p&gt;
Strictly speaking, it would be advantageous for Keil to allow
general-purpose embedded discussions, possibly allowing people to
filter away these threads if not interested. The cust of running a
forum is not proportional to volume of posts.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: how to use the interrupt keyword in 8051 C code.</title><link>https://community.arm.com/thread/158472?ContentTypeID=1</link><pubDate>Fri, 16 Feb 2007 10:04:46 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:63f52fd4-26e5-4fd4-a157-42b13f874af9</guid><dc:creator>erik  malund</dc:creator><description>&lt;p&gt;&lt;p&gt;
&lt;i&gt;If you can do one design well, even if it is a small one, you&amp;#39;d
definitely do the big design well.&lt;/i&gt;&lt;br /&gt;
and the moon is made of green cheese. That you get &amp;#39;blinky&amp;#39; to work,
by no means make you qualified for a big job.&lt;/p&gt;

&lt;p&gt;
&lt;i&gt;I mean a microcontroller will always be a microcontroller no
matter how many extra features it has.&lt;/i&gt;&lt;br /&gt;
there is NO SUCH THING AS &amp;quot;A&amp;quot; microcontroller&lt;br /&gt;
e.g. a PIC and a &amp;#39;51 are as different as ... no, a hundered times
more different than an apple and an orange.&lt;/p&gt;

&lt;p&gt;
&lt;i&gt;We make mistakes but, these mistakes teach us good
lessons.&lt;/i&gt;&lt;br /&gt;
correct&lt;/p&gt;

&lt;p&gt;
&lt;i&gt;After all, everything starts small and grows big.&lt;/i&gt;&lt;br /&gt;
usually.&lt;/p&gt;

&lt;p&gt;
Erik&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: how to use the interrupt keyword in 8051 C code.</title><link>https://community.arm.com/thread/158465?ContentTypeID=1</link><pubDate>Fri, 16 Feb 2007 09:35:42 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:df55a213-244a-4fa9-a05f-4605634594a3</guid><dc:creator>Andy Neil</dc:creator><description>&lt;p&gt;&lt;p&gt;
&lt;i&gt;&amp;quot;I should post all the technical questions here.&amp;quot;&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
Actually, this forum should only be used for discussions
specifically about &lt;b&gt;Keil products&lt;/b&gt; - see: &lt;a href="http://www.keil.com/forum/"&gt;http://www.keil.com/forum/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;
For general discussions about the 8051/2 family, you could try:
&lt;a href="http://www.8052.com/forum"&gt;http://www.8052.com/forum&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;
See also: &lt;a href="http://www.keil.com/forum/otherforums.asp"&gt;http://www.keil.com/forum/otherforums.asp&lt;/a&gt;&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: how to use the interrupt keyword in 8051 C code.</title><link>https://community.arm.com/thread/158507?ContentTypeID=1</link><pubDate>Fri, 16 Feb 2007 09:28:35 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:2c6efabe-8ac5-4110-a0c4-102322ed3467</guid><dc:creator>Mrunmoy Samal</dc:creator><description>&lt;p&gt;&lt;p&gt;
Jay,&lt;/p&gt;

&lt;p&gt;
Sorry for referring you with your last name.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: how to use the interrupt keyword in 8051 C code.</title><link>https://community.arm.com/thread/158425?ContentTypeID=1</link><pubDate>Fri, 16 Feb 2007 09:23:59 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:be331270-609e-4e9a-a50c-adf61687662c</guid><dc:creator>Mrunmoy Samal</dc:creator><description>&lt;p&gt;&lt;p&gt;
I agree 100% to you Erik, that I should post all the technical
questions here. Because even i got benefited by the answers that all
of you have posted.&lt;/p&gt;

&lt;p&gt;
But, what i said was not crap. At least a seasoned person like you
shouldn&amp;#39;t be saying that. Pls. don&amp;#39;t take it otherwise, i am not
blaming anyone here.&lt;/p&gt;

&lt;p&gt;
If you can do one design &lt;b&gt;well&lt;/b&gt;, even if it is a small one,
you&amp;#39;d definitely do the big design well. I mean a microcontroller
will always be a microcontroller no matter how many extra features it
has. It all depends upon how well one has understood and comprehended
that first design. We make mistakes but, these mistakes teach us good
lessons.&lt;/p&gt;

&lt;p&gt;
After all, everything starts small and grows big. Don&amp;#39;t you agree
with that Erik?&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: how to use the interrupt keyword in 8051 C code.</title><link>https://community.arm.com/thread/158471?ContentTypeID=1</link><pubDate>Fri, 16 Feb 2007 09:12:51 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:b8a86c46-aff5-40e2-adf7-3cb99f8ac8f6</guid><dc:creator>Mrunmoy Samal</dc:creator><description>&lt;p&gt;&lt;p&gt;
Thanks Daniel.&lt;/p&gt;

&lt;p&gt;
But as Erik said. Everyone should get benefited by the technical
discussions in this forum. I will post all technical questions in
here.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: how to use the interrupt keyword in 8051 C code.</title><link>https://community.arm.com/thread/158369?ContentTypeID=1</link><pubDate>Fri, 16 Feb 2007 08:06:26 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:50647fdf-0514-436e-8a82-03ea7767e7f8</guid><dc:creator>Jason Daniel</dc:creator><description>&lt;p&gt;&lt;p&gt;
Mrunmoy,&lt;/p&gt;

&lt;p&gt;
&lt;i&gt;I mean the hardware design work is cool but I need to know
about the software too. I am not able to change my job because nobody
wants hardware engineers today? My employer pays too less and we are
just two of us in the company to do hardware design. We have to work
14-16 hours daily cuz there are no one else to do it. I have my
family and I am not able to give them time.&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
I think you&amp;#39;ve got a pretty good &amp;quot;mission&amp;quot; here. My personal
opinion (and I&amp;#39;m fairly certain that everyone on here will agree) is
that what separates truly great embedded systems designers from
mediocre ones is their ability to think about hardware and software
seamlessly. In organizations like yours where one process is divorced
from the other, projects often become less-than-optimal and far more
difficult.&lt;/p&gt;

&lt;p&gt;
Your hardware design background will be invaluable to you in your
understanding of embedded software design. Hopefully, when you come
out of this, you&amp;#39;ll find that your productivity (even in software) is
greater than that of an experienced person who&amp;#39;s never taken the time
to fully understand both sides of embedded design.&lt;/p&gt;

&lt;p&gt;
-Jay Daniel&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: how to use the interrupt keyword in 8051 C code.</title><link>https://community.arm.com/thread/158424?ContentTypeID=1</link><pubDate>Fri, 16 Feb 2007 08:02:49 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:1465cdaa-591d-44f8-9d9f-41b1d46961ba</guid><dc:creator>Jason Daniel</dc:creator><description>&lt;p&gt;&lt;p&gt;
Mrunmoy,&lt;/p&gt;

&lt;p&gt;
Given the nature of your job situation, I can understand that you
might want to ask some questions privately. You can email me at
jdaniel@NOSPAM.ieee.org. (Remove the NOSPAM. to get my real address).
That being said, please take the advice of others about the forum: If
you&amp;#39;re going to ask a technical question, do it here so that others
who have similar concerns will be able to find it and learn from
it.&lt;/p&gt;

&lt;p&gt;
-Jay Daniel&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: how to use the interrupt keyword in 8051 C code.</title><link>https://community.arm.com/thread/158426?ContentTypeID=1</link><pubDate>Fri, 16 Feb 2007 07:36:01 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:5b84f943-c45c-4cfd-a669-5c3bafc9be38</guid><dc:creator>erik  malund</dc:creator><description>&lt;p&gt;&lt;p&gt;
&lt;i&gt;If you do not mind then I would like to have your contact
details, so that i can post my questions to you directly.&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
and deprive all other members of the information?&lt;/p&gt;

&lt;p&gt;
discussing through a forum has many purposes, let me mention
two&lt;br /&gt;
1) others may pick up valueable information. I have learned much by
seing information posted I was not aware of &lt;i&gt;and did not even think
of asking about&lt;/i&gt;. e.g. I have picked up a technique or two where I
had no idea that a more efficient way than mine (and many others)
&amp;quot;tried and true&amp;quot; method existed.&lt;br /&gt;
2) if someone makes a wrong reply it is (almost) immediately
corrected.&lt;/p&gt;

&lt;p&gt;
So, please do not suggest taking this discussion off the forum&lt;/p&gt;

&lt;p&gt;
Erik&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: how to use the interrupt keyword in 8051 C code.</title><link>https://community.arm.com/thread/158364?ContentTypeID=1</link><pubDate>Fri, 16 Feb 2007 07:10:43 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:ba127dbe-488f-4dc3-be5b-542604b19ae0</guid><dc:creator>erik  malund</dc:creator><description>&lt;p&gt;&lt;p&gt;
&lt;i&gt;I mean the hardware design work is cool but I need to know
about the software too. I am not able to change my job because nobody
wants hardware engineers today? My employer pays too less and we are
just two of us in the company to do hardware design. We have to work
14-16 hours daily cuz there are no one else to do it. I have my
family and I am not able to give them time.&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
if you &amp;quot;work 14-16 hours daily&amp;quot;, then how come &amp;quot;nobody wants
hardware engineers&amp;quot;. it sounds to me like your boss need to hire more
of them.&lt;/p&gt;

&lt;p&gt;
That said, the real champs of small micro design know both HW and
SW, so a dual capability is definitely an advantage.&lt;/p&gt;

&lt;p&gt;
Erik&lt;/p&gt;

&lt;p&gt;
PS stop the cuzzing, it is VERY annoying&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: how to use the interrupt keyword in 8051 C code.</title><link>https://community.arm.com/thread/158376?ContentTypeID=1</link><pubDate>Fri, 16 Feb 2007 07:06:16 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:aeaf7fa3-58e1-471e-abf0-99ad1f58c562</guid><dc:creator>erik  malund</dc:creator><description>&lt;p&gt;&lt;p&gt;
&lt;i&gt;I believe its not a big deal to work on any microcontroller
based designs. Because, if you do one design from starting to end.
Its just the same in all others&lt;/i&gt;&lt;br /&gt;
what a load of CRAP.&lt;/p&gt;

&lt;p&gt;
If you are one of the best at the PIC and get thrown into a &amp;#39;51
design, your firts attempt will, at best, be mediocre.&lt;br /&gt;
That said, there is nothing hindering that you can,
&lt;b&gt;eventually&lt;/b&gt;, become proficient in both.&lt;/p&gt;

&lt;p&gt;
Erik&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: how to use the interrupt keyword in 8051 C code.</title><link>https://community.arm.com/thread/158374?ContentTypeID=1</link><pubDate>Fri, 16 Feb 2007 04:04:32 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:e2668e15-2a71-41fb-8e44-a556852a0911</guid><dc:creator>Mrunmoy Samal</dc:creator><description>&lt;p&gt;&lt;p&gt;
Dear All,&lt;/p&gt;

&lt;p&gt;
If you do not mind then I would like to have your contact details,
so that i can post my questions to you directly.&lt;/p&gt;

&lt;p&gt;
Jonny Doin&lt;br /&gt;
Jason Daniel&lt;br /&gt;
Per Westermark&lt;br /&gt;
Andy Neil&lt;br /&gt;
Erik Malund&lt;/p&gt;

&lt;p&gt;
Kindly provide me your details.&lt;/p&gt;

&lt;p&gt;
Best Regards,&lt;br /&gt;
Mrunmoy.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: how to use the interrupt keyword in 8051 C code.</title><link>https://community.arm.com/thread/158323?ContentTypeID=1</link><pubDate>Fri, 16 Feb 2007 04:00:45 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:07639377-b8ca-4143-aad7-5435fc1a0757</guid><dc:creator>Mrunmoy Samal</dc:creator><description>&lt;p&gt;&lt;p&gt;
So, I should take 8051 and understand its software architecture in
C first.&lt;/p&gt;

&lt;p&gt;
I believe its not a big deal to work on any microcontroller based
designs. Because, if you do one design from starting to end. Its just
the same in all others. The only things that we should keep in mind
are the design checklists. I mean, personally I think that given a
concept, I can prototype it with the right choice of micro and it
depends a lot on the requirements of the customer.&lt;/p&gt;

&lt;p&gt;
The datasheets and application notes give it all that is required
to design. And the best part are the people like you who are ready to
provide help on concepts online.&lt;/p&gt;

&lt;p&gt;
Thanks, thanks a lot for all your concepts and discussions in this
thread that i posted. I wish I could meet such seasoned technical
people like you and get some good tips for design. That would give me
more confidence on myself.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: how to use the interrupt keyword in 8051 C code.</title><link>https://community.arm.com/thread/158316?ContentTypeID=1</link><pubDate>Fri, 16 Feb 2007 03:52:55 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:cd5aa812-8200-4a0f-ac21-cffce201aaab</guid><dc:creator>Mrunmoy Samal</dc:creator><description>&lt;p&gt;&lt;p&gt;
I will answer Erik&amp;#39;s point here.&lt;/p&gt;

&lt;p&gt;
I got these ideas from the software team who writes the software
for the hardware we design.&lt;/p&gt;

&lt;p&gt;
In fact, I think i should give some picture on what all i have
worked on till date.&lt;/p&gt;

&lt;p&gt;
My very first project was a test system development for testing
the vehicle braking systems by generating various kinds of faults in
it. So this system was basically introducing faults and also
recording the results.&lt;/p&gt;

&lt;p&gt;
My second project was on PIC16F73. It was basically a
re-engineering project where I redesigned a super regenerative
receiver with a super heterodyne receiver. PIC was used as the micro
in the receiver design along with Maxim&amp;#39;s RF receiver chip. I was
totally new to the embedded world and this was our company&amp;#39;s very
first radio design. There were challenges but I was able to finish of
the project to its end.&lt;/p&gt;

&lt;p&gt;
My third project was a intelligent power management system for the
vehicle. It was based on NEC V850 core. Although the design was
pretty complex as it had many high current nets, still we managed to
design and prototype it. I was not involved in the software part of
it and testing because i was pulled into another design project.&lt;/p&gt;

&lt;p&gt;
My fourth project was a gateway module. We designed it on a HCS12X
core. This design had challenges in terms of providing on-board
diagnostics, protections and recovery for the in-vehicle networks and
I/O channels.&lt;br /&gt;
I was again not involved in the software design as they think I am a
design engineer so I cannot write code.&lt;/p&gt;

&lt;p&gt;
I mean the hardware design work is cool but I need to know about
the software too. I am not able to change my job because nobody wants
hardware engineers today? My employer pays too less and we are just
two of us in the company to do hardware design. We have to work 14-16
hours daily cuz there are no one else to do it. I have my family and
I am not able to give them time.&lt;/p&gt;

&lt;p&gt;
Now, I had to think of a way to get out of this place.&lt;br /&gt;
Just to meet the market needs and my needs I have to learn software
part of it. This is what compelled me to start learning about the
software in order to get a break for myself in the market today.&lt;/p&gt;

&lt;p&gt;
I know writing all these things here is a waste of your time and
also my time. Anyways, back to topic.&lt;/p&gt;

&lt;p&gt;
Ya, I came across all this RTOS, drivers etc when my manager used
to speak about all these in team meetings and I used to feel that I
am nowhere in the world!&lt;/p&gt;

&lt;p&gt;
Apologies for wasting your precious time here.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: how to use the interrupt keyword in 8051 C code.</title><link>https://community.arm.com/thread/158263?ContentTypeID=1</link><pubDate>Thu, 15 Feb 2007 18:45:10 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:11c3a17b-71ea-4c10-9c15-107f0ad91372</guid><dc:creator>Jonny Doin</dc:creator><description>&lt;p&gt;&lt;p&gt;
I wrote: &lt;i&gt;&amp;quot;ARM7 ... are actually cheaper than the 8051s&amp;quot;&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
Andy replied: &lt;i&gt;&amp;quot;You can&amp;#39;t just say that without
qualification!&amp;quot;&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
In which he is correct.&lt;/p&gt;

&lt;p&gt;
The higher-end 8051s, like the 64Kb Flash devices, e.g., the
P89C668 (recently discontinued), the RD2 and RE2 (an Atmel
vaporware), overlap with many ARM7 families in price, like the
LPC21xx and LPC23xx from Philips. The remarkable thing is that for
US8.22 you get a LPC2368 with 72MIPS, 32bit core with full speed
Ethernet, USB and CAN for less than a P89C668 and slightly more than
a P89V664. But there are 8051s that cost around U$1.00, and there are
also ARM7s that cost around U$1.50.&lt;/p&gt;

&lt;p&gt;
But I agree with all what was said about the relevance of
mastering the 8051 core. Although it is one of the first uC cores
still in action, it has an impressive number of derivatives, and if
you want you can get a single-cycle 8051 that runs at 200MHz.&lt;/p&gt;

&lt;p&gt;
I agree with Erik that you must know the chip and the toolchain,
and not use them outside their limits. For example, the classic &amp;#39;51
and all its C compilers are really bad at floating point and
math-intensive apps, like filtering, but are very good at control
apps and 8/16bit math.&lt;/p&gt;

&lt;p&gt;
I think that a systems designer must be knowledgeable in many
platforms. The &amp;#39;51s have many hardware and software peculiarities,
and you must know them. I like Microchip cores very much also, and
have developed quite many systems for all PIC families. The ARM core
implementations available are very interesting, and you should know
them also, if you are serious about system development.&lt;br /&gt;
Every architecture has its strong and weak points, and you must
explore and apply the right mindset to each one. What is a completely
prohibitive approach for one core is natural and fast for
another.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: how to use the interrupt keyword in 8051 C code.</title><link>https://community.arm.com/thread/158328?ContentTypeID=1</link><pubDate>Thu, 15 Feb 2007 16:57:20 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:bb7c0bff-3085-4a74-96bf-53a74a79af54</guid><dc:creator>erik  malund</dc:creator><description>&lt;p&gt;&lt;p&gt;
&lt;i&gt;The &amp;#39;51 core has been available for quite a number of years
now, but it will not disapear too soon, because of widespread use and
gazillions of variants&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
true, &lt;b&gt;AND&lt;/b&gt; a new derivative is introduced almost every
day.&lt;/p&gt;

&lt;p&gt;
in addition to the &amp;#39;processor only derivatives&amp;#39; all kinds of
combos are coming out:&lt;br /&gt;
BB (now TI) chose the &amp;#39;51 architecture when they came out with the
first 24 bit a/d intefrated with a uC&lt;br /&gt;
IR chose the &amp;#39;51 for their &amp;quot;integrated washer-dryer&amp;quot; power
solutions&lt;br /&gt;
Nordic chose the &amp;#39;51 for their UC radio con=mbination&lt;br /&gt;
A?D has some &amp;#39;51 combos&lt;br /&gt;
..........&lt;/p&gt;

&lt;p&gt;
I do believe that every year since it&amp;#39;s introduction (including
2006) more &amp;#39;51s have been used than the year before. It is a fact
(that microchip obfusciates) that &lt;i&gt;when you add all the brands of
the &amp;#39;51 together&lt;/i&gt; it is the most used processor in the world.&lt;/p&gt;

&lt;p&gt;
Erik&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: how to use the interrupt keyword in 8051 C code.</title><link>https://community.arm.com/thread/158262?ContentTypeID=1</link><pubDate>Thu, 15 Feb 2007 16:05:59 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:e8f76383-e09f-4d8d-b2e0-2c42906b6eb7</guid><dc:creator>ImPer Westermark</dc:creator><description>&lt;p&gt;&lt;p&gt;
In this case, I think the price doesn&amp;#39;t matter, since we are
talking about learning to program a microcontroller.&lt;/p&gt;

&lt;p&gt;
The &amp;#39;51 core has been available for quite a number of years now,
but it will not disapear too soon, because of widespread use and
gazillions of variants. Hence, it is a good processor for learning
embedded programming. Especially since it very clearly shows the
difference between embedded and workstation programming.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: how to use the interrupt keyword in 8051 C code.</title><link>https://community.arm.com/thread/158243?ContentTypeID=1</link><pubDate>Thu, 15 Feb 2007 15:30:32 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:e147193f-3895-4548-9120-d8c88499828a</guid><dc:creator>Andy Neil</dc:creator><description>&lt;p&gt;&lt;p&gt;
&lt;i&gt;&amp;quot;ARM7 ... are actually cheaper than the 8051s&amp;quot;&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
You can&amp;#39;t just say that without qualification!&lt;/p&gt;

&lt;p&gt;
I think you mean, &amp;quot;&lt;i&gt;some&lt;/i&gt; ARM7s are actually cheaper than
&lt;i&gt;some&lt;/i&gt; 8051s.&amp;quot;&lt;/p&gt;

&lt;p&gt;
Both ARM7 and 8051 cores are available in an extremely wide range
of devices, and there is certainly an overlap between the lower range
of ARMs and the higher range of 8051s...&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: how to use the interrupt keyword in 8051 C code.</title><link>https://community.arm.com/thread/158247?ContentTypeID=1</link><pubDate>Thu, 15 Feb 2007 14:15:25 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:9eb60668-8b9f-46ad-8cc4-e061ed72aebe</guid><dc:creator>erik  malund</dc:creator><description>&lt;p&gt;&lt;p&gt;
&lt;i&gt;Pls suggest where should i start then if not the 8051?&amp;quot;&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
I do not think anyone have suggested you start anywhere else.&lt;/p&gt;

&lt;p&gt;
What has been pointed out is that the &amp;#39;51 should be treated as a
&amp;#39;51, not as some RTOS base. the &amp;#39;51 ia a great chip wben used as
intended.&lt;/p&gt;

&lt;p&gt;
Would you drive a Porsche like a tractor?, would you drive a
Tractor like a Porsche?&lt;/p&gt;

&lt;p&gt;
It really puzzles me that a hardware guy even would think about a
RTOS, drivers, whatever in that league, could you enlighten us as to
where you got those ideas from?&lt;/p&gt;

&lt;p&gt;
Erik&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: how to use the interrupt keyword in 8051 C code.</title><link>https://community.arm.com/thread/158229?ContentTypeID=1</link><pubDate>Thu, 15 Feb 2007 14:07:22 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:fcc05e31-e37a-4c76-8522-4b9dd7a71a55</guid><dc:creator>Jonny Doin</dc:creator><description>&lt;p&gt;&lt;p&gt;
&lt;i&gt;&amp;quot;Pls suggest where should i start then if not the
8051?&amp;quot;&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
The 8051 core is as good a starter point as any. It is a &amp;#39;old&amp;#39;
Intel core, with several shortcomings, but has many interesting
features also. You get hardware multiply and divide, something you
will not find im many 8-bit cores. You also have the bit-manipulation
instructions, for example.&lt;/p&gt;

&lt;p&gt;
If your aim is learning about microcontroller structure and
embedded design, it will be worth the effort. Moreover, there are
millions of 8051 variants, so you may actually get to use the
knowledge. Besides, every core has its idiosyncrasies, and you must
get used to quickly learn about them.&lt;/p&gt;

&lt;p&gt;
If you want to begin with something &amp;#39;newer&amp;#39;, you may try to start
with an ARM7 core. They are actually cheaper than the 8051s, and are
in another league, with 32bits and extremely optimized
instructions.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: how to use the interrupt keyword in 8051 C code.</title><link>https://community.arm.com/thread/156147?ContentTypeID=1</link><pubDate>Thu, 15 Feb 2007 13:24:45 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:79bc9090-bf71-4dae-804c-01f334580e47</guid><dc:creator>ImPer Westermark</dc:creator><description>&lt;p&gt;&lt;p&gt;
&lt;i&gt;Everyone that call any uC &amp;#39;ugly&amp;#39; should examine their
application vs the chosen chip.&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
If you are going to produce in volume - or have very specific
requiremens about power consumption, availability, support for magic
function x, ... - you are seldom in a position to select a chip based
on how funny and/or easy it is to program, or how efficiently it can
handle an interrupt request.&lt;/p&gt;

&lt;p&gt;
Then you can be in a position that you really, truly dislike a
specific processor, but you will still select it for a product, or
someone may already have designed the hardware and request software
for it.&lt;/p&gt;

&lt;p&gt;
Sometimes, a chip may be selected just because someone thinks that
they own a compiler for it.&lt;/p&gt;

&lt;p&gt;
I have worked with projects where the HW designer selected the uC
because he happened to have made a construction with the same chip 5
years earlier - ignoring end-of-life, price, and need for external
chips because of lack of built-in devices.&lt;/p&gt;

&lt;p&gt;
Nothing is as funny as developing for a brand new chip that has so
favourable price that it is selected on the speculation that the chip
manufacturer _may_ be able to follow their projected release
plan.&lt;/p&gt;

&lt;p&gt;
If the chip is then suddenly delayed with 6 months, or the
manufacturer reports that they can only deliver 1k instead of 10k
chips, I can promise that you will consider the panic replacement
chip an ugly *** when you try to port the source in a frenzy.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>