Embedded Software Course
Embedded Software Course
Ahmed Tolba
For confirmation:
[email protected]
COURSE CONDITIONS
1. GRADUATE FROM ELECTRONICS – COMMUNICATION –
MECHATRONICS – COMPUTER ENGINEERING – ELECTRICAL
POWER – BIOMEDICAL- AVIONICS – COMPUTER SCIENCE
STUDENTS MUST HAVE KNOWLEDGE IN DIGITAL ELECTRONICS
2. BASICS OF DIGITAL ELECTRONICS
3. BASICS OF ANY PROGRAMMING LANGUAGES LIKE C
4. FEES ARE TO BE PAID AFTER COURSE IS FINISHED – 3000LE TO BE
PAID THROUGH VODAFONE CASH OR INSTAPAY – I TRUST YOU
5. ALL PROJECTS ARE DONE IN SIMULATOR LIKE PROTEUS – YOU
DON’T NEED A SPECIAL KIT , JUST TO SAVE MONEY
6. WE LEARN BY DOING – YOU MUST PRACTICE AND DO THE
PROJECTS YOURSELF! – WITH SUPERVISION AND SOLVING THE
PROBLEMS WITH ME
7. DOWNLOAD PROTEUS FROM HERE
https://www.yasdl.com/57569/%D8%AF%D8%A7%D9
%86%D9%84%D9%88%D8%AF-proteus.html
8. THIS IS AN ONLINE COURSE
9. THERE ARE NO HOUR’S LIMIT – I HAVE TO FINISH THE CONTENT
OF COURSE HOWEVER IT NEEDS
CONTENTS
1. C PROGRAMMING FOR EMBEDDED SOFTWARE
1.1 BEGINNING CONCEPTS
1.2 VARIABLES AND CONSTANTS
1.3 I/O OPERATIONS
1.4 OPERATORS AND EXPRESSIONS
1.5 CONTROL STATEMENTS
1.6 FUNCTIONS
1.7 POINTERS AND ARRAYS
1.8 STRUCTURES AND UNIONS
1.9 MEMORY TYPES
1.10 EXERCISES ON HACKER-RANK
2. THE AVR RISC PROCESSORS
2.1 INTRODUCTION
2.2 ARCHITECTURAL OVERVIEW
2.3 MEMORY
2.4 RESET AND INTERRUPT FUNCTIONS
2.5 PARALLEL I/O PORTS
2.6 TIMER/COUNTERS
2.7 SERIAL COMMUNICATION USING USART
2.8 ANALOG INTERFACES
2.9 SERIAL COMMUNICATION USING SPI
2.10 SERIAL COMMUNICATION USING I2C
3. PROJECTS
3.1 BLINKING AN LED
3.2 EXPERIMENTING WITH DIGITAL OUTPUT PORT
3.3 BIT-SHIFTING DIGITAL OUTPUTS
3.4 EXPERIMENTING WITH NOT , AND, OR, XOR
3.5 BUILDING A SINGLE DIGIT NUMERICAL COUNTER
3.6 EXPERIMENTING WITH AVR ADC
3.7 TESTING THE USART – SENDING TEXT, NUMBERS
3.8 EXPERIMENTING WITH RISING EDGE, FALLING EDGE INTERRUPTS
3.9 EXPERIMENTING WITH TWO INTERRUPTS – PIN CHANGE INTERRUPTS - CREATING
UP-DOWN COUNTER USING INTERRUPTS
3.10 EXPERIMENTING WITH TIMER OVERFLOW AND INTERRUPTS
3.11 USING PULSE WIDTH MODULATION AND PIEZO, RGB LEDS
3.12 DC MOTOR CONTROL WITH PWM AND MOSFET
3.13 STORING BYTES IN EEPROM , FLOATING POINT VARIABLES
3.14 USING MCP3008 ADC WITH SPI
3.15 USING MCP23017 WITH I2C
3.16 BUILDING AN AVR BASED LCD DIGITAL CLOCK
REFERENCES
1. Tricks of the windows game programming gurus
2. Design Patterns Gang of Four
3. Operating System Concepts
4. Embedded Software Design
5. The C Programming Language
7. EXPERIENCE