>>> Your Search for In-depth Embedded System Programming Course ends here. <<<
>>> Your Search for In-depth Embedded System Programming Course ends here. <<<
If you want to know how to kick start embedded programming skill and level up your career, read on. Hello, my name is Arabinda Verma and I have spent more than 15 years in research & software development, trained hundreds of graduates in programming and software engineering. When I ask students to tell me what their biggest challenge while learning Embedded Programming is, they all say the same thing: “Fundamentals are not clear.” To really become comfortable with embedded systems, students need guidance, mentorship, and practice. This isn’t always the case in programming schools and universities despite the high investments in time and money that they require.
This made me design this course, which will take you from the basics of embedded training to the advanced microcontroller architectures.
Why this course?
Embedded systems might appear complex to newcomers or even experienced programmers. With a different pedagogic approach, this course will help you become familiar with different aspects of this area, which will prove particularly helpful regardless of your experience in programming.
The course helps you build a sound understanding of C & Assembly programming. It discusses the architecture of the ATMega328 microcontroller and how software and hardware interact. You will gain here foundational knowledge, applied skills, hands-on programming exercises, proper guidance and mentorship.
I strongly believe that even the most complex contexts can be broken down to be assimilated by all students, regardless of their level.
Plus a
What you will gain from this course?
You will rig-up the development board using the basic electronic components like capacitors, resistors, LEDs, microcontroller etc. And interface the development board with PC through USB-serial adapter and in-circuit programming. You shall setup the development environment on PC, configure the microcontroller and flash the bootloader.
You will learn memory management through the C compiler, microcontroller architecture, instruction execution, interrupt handling and cross-language programming. You shall implement programs using the C and Assembly programming languages and implement pre-main functionalities to bring up the development board. These topics not only introduce you to the programming but also prepare you to deal with the ecosystem of programming an embedded system.
What other students are saying about this course?
Lots of students have already taken the right decision by enrolling in the course. Following is what they are saying.
"........ Arabinda Verma has done an excellent job of making the basic of microcontroller for anyone who is struggling in developing embedded concepts. Furthermore, after completing internal's and peripherals very clear through his tutorials. It serves as a good foundation course the course I am more confident in writing my own drivers for the microcontroller. For the best result, I would suggest to purchase any hardware board of AVR architecture and implement the code discussed in the tutorials. I am also looking forward to Arabinda's other tutorial. Happy Learning :)" -Yousuf
"Awesome course for beginners to build foundation of embedded system and C programming. The best part of the course is to build the development board on the breadboard and run/test programs........." - Akash
"Very useful course to learn and understand embedded systems." - Ajaganna
Planned updates to this course
On the demand of our student’s we are continuously bringing updates that could help you more in this topic. Updates to this course are life time free for enrolled students Let’s talk more about this in the discussions section inside this course.
Update 4 (5th, Feb'19): Added EEPROM programming & driver development.
Update 3 (22nd, Jan’19): Added a section for programming challenges solution.
Update 2 (15th, Jan’19): Added section on GPIO
Update 1 (1st, Jan'19): Restructured the course.
My promise.
Now you don’t need to spend hours finding out a right course, instructor, study material for embedded programming. If you are in any way not satisfied, for any reason, you can get a full refund from Udemy within 30 days. The course comes with a ”No questions asked money back guarantee for 30 days". So, there is nothing for you to lose.
Enroll today and jump into the fascinating world of embedded systems to gain top skills and knowledge in this so-promising area of programming.
Test your learning of ATmega328/P microcontroller.
Test your understanding of C, its structure, identifiers and keywords.
Test your learning of data types, operators, functions and control statements.
Test your C skill
GPIO section introduction
You will learn about the General Purpose Input Output port available in the ATmeag328 uC. You will also learn about the registers used to configure, read and write the GPIO ports.
You will learn how to configuration GPIO ports and understand read and write operation.
You shall interface LEDs and button switches with the GPIO pins and implement a program to control the LEDs using the switches.
You will interface the 4x4 keypad with the development board and implement the driver program.
AVR microcontrollers have internal EEPROM for semi-permanent data storage. Like flash memory, EEPROM can maintain its contents when electrical power is removed. The ATmega328/P contains 1K bytes of EEPROM memory. EEPROM stands for Electronically Erasable Programmable Read Only Memory which is a type of non-volatile memory used in various electronic devices to store relatively small amount of data.
In this lesson, you will learn about the different programming operations of the EEPROM memory.
In this lesson, you shall implement the EEPROM driver. The driver shall support all the three operating modes those are Erase & write, Erase only and Write only. It exposes four functions to be consumed by the application module. These functions are eeprom_init(), eeprom_read(), eeprom_write() and eeprom_erase().
In the previous lesson, you defined the EEPROM registers, the function prototypes and implemented the functions eeprom_init(). In this lesson, you shall continue with the remaining implementation.
In the previous lesson you developed EEPROM driver and tested its all the three operations. In this lesson, you shall learn about interrupt based EEPROM driver. We shall modify the earlier implementation to incorporate the interrupt triggered write operation.
In the earlier lesson, we disabled the EEPROM Ready Interrupt bit in the EECR register. If the bit is set, the EEPROM ready interrupt will be triggered constantly when EEPE bit is cleared. That means when the program starts the uC will be executing EEPROM Ready interrupt service routine only and the code in main program is never executed. Note this point, it is important while designing interrupt based EEPROM driver.
Test your learning of GNU make
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.