MICPRG Les 14 Microcontroller Programmeren in C. 153 Duurzaam AVR gebruik De AVR ATmega32A is de opvolger van de ATmega32. De A versie is ongeveer 40%

Slides:



Advertisements
Verwante presentaties

Advertisements

PROS2 Les 13 Programmeren en Software Engineering 2.
Objectgeoriënteerd Programmeren in C++


Een getal met een komma noemen we een decimaalgetal.
Programmeren en Software Engineering 2



Embedded systemen Embedded software.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Een programma opbouwen.
PROS2 Les 2 Programmeren en Software Engineering 2.
Programmeren en Software Engineering 2
Microcontroller Programmeren in C


Inleiding programmeren in C++ Life Science & Technology 23 februari Universiteit Leiden.
MICPRG Les 12 Microcontroller Programmeren in C. 127 Real-time clock PC heeft een RTC Real-time Clock die de “time of day” bijhoudt. De RTC is voorzien.
Gestructureerd programmeren in C
Inleiding programmeren in C++ Life Science & Technology 19 januari Universiteit Leiden.
ADuC8xx MICROCONVERTER
De microcontroller Door Klaas De Nys.
GESPRG Les 14 Gestructureerd programmeren in C. 174 Details! The devil is in the details.
C programma int main(){ } Compilatie met devc++ in file main.c Gecompileerd programma in file FirstProgram.exe Mov R1, 120 Mov R2, 160 ADD R1, R2.
PROS2 Les 14 Programmeren en Software Engineering 2.


De processor.
Algoritmen en Datastructuren (ALDAT) EVMINX4 Week 6.
PROS2 Les 7 Programmeren en Software Engineering 2.
PROS2 Les 6 Programmeren en Software Engineering 2.
MICPRG Les 11 Microcontroller Programmeren in C. 112 Datastructuren in C Werkgeheugen (PC en microcontroller): Statische datastructuren (vaste grootte):
GESPRG Les 12 Gestructureerd programmeren in C. 152 Huiswerk Uitwerking void reverse(int a[], int n) { int first = 0, last = n - 1; while (first < last)


GESPRG Les 7 Gestructureerd programmeren in C. 92 Verwisselen Schrijf een functie waarmee twee int variabelen verwisseld kunnen worden. void wissel(int.
Inleiding programmeren in C++ Life Science & Technology 2 februari Universiteit Leiden.
Werken aan Intergenerationele Samenwerking en Expertise.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 4 - onderwerpen Multiplexen.
1 ICT Infrastructuren 19 november 2007 David N. Jansen.
Event Handling in Embedded Systems.  Wat is een event?  Welke events zijn het meest “time-critical”?  Welke toestand wordt door de CPU opgeslagen?
MICROCONTROLLERS.
Bij wizard krijgt men het verkeerde type!!! Wissel dit bij hardware achteraf met Siemens 313C-2DP  6ES CF03-0AB0 7TSB  zie volgende slide.
Tircms02-p les 7 systemcalls linux vervolg. Inleiding Onder /usr/include/linux staan bestanden die de linuxkernel o.a. gebruikt om drivers aan te spreken.
Les 2: Zaterdag 24 mei 2014 Wim Peeters
Context switching Chanel Mepschen Informatica 5Fvwo.
Operatingsysteem. Context switshing Het wisselen tussen twee processen, waarbij de status van het proces wordt bewaard. Om te kunnen switchen moet het.
Context switching Heidi Snoek. Het proces Twee applicaties: A en B CPU voert de instructies van programma A uit. Op een bepaald moment wordt er data weggeschreven.
HM-ES-th1 Les 12 Hardware/Software Codesign with SystemC.
Tircms03-p les 6 Templates. Functietemplates void verwissel(int &x, int &y); { int w=x;x=y;y=w;} Dezelfde functie voor meerdere types heet een functietemplate.
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 3 - onderwerpen  DB036 printjes subroutines.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  herhaling ARM assembler instructies  assembler.
Basisfuncties Operating System.
Onderwerp: PIC assembler programmeren
Tircms03-p les 4 Klassen. Abstracte datatypes in C struct stack { char info[100]; int top; }; void reset(stack *s) { s->top = -1; } void push(stack *s,
Les 1: Zaterdag 10 mei 2014 Wim Peeters
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 2 - onderwerpen  Helaas nog geen printjes.
Context switching Naomi Baggelaar. Het proces Twee applicaties: A en B CPU voert de instructies van programma A uit. Op een bepaald moment wordt er data.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 2 - onderwerpen MPLAB.
VPEMSY1, D3ECPT2 : ARM Assembler 1 Hogeschool Utrecht / Electrical Engineering & Design 1  Herhaling: CMP, CMN,
PEMSY1http:// 1  Herhaling nieuwe instructies van vorige week  nieuw: combineren van assembler en C  oefeningen: assembler.
2TPRJ5 – PIC assembler Hogeschool Utrecht / Institute for Information & Communication Technology Wouter van Ooijen Mail: Sheets.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1.
Instructie Programmeren Task 7
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag Een embedded systeem: ARM bord.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 3 - onderwerpen Instruction timing Shadow.
Microcontrollers Labo
Afscherming 1 hour Monday ochtend morning.
Transcript van de presentatie:

MICPRG Les 14 Microcontroller Programmeren in C

153 Duurzaam AVR gebruik De AVR ATmega32A is de opvolger van de ATmega32. De A versie is ongeveer 40% zuiniger. De AVR ATmega32 heeft 6 slaapstanden waarin de CPU en bepaalde andere delen uitgeschakeld zijn. De AVR wordt weer wakker door een interrupt of door een Reset. sei() niet vergeten voordat je gaat slapen. Assembler: gebruik de machinecode instructie SLEEP en het MCUCR I/O register. C: gebruik avr/sleep.h. void set_sleep_mode(uint8_t mode); void sleep_mode(void);

154 Slaapstanden modeCPUI/OADCT/C2 (async) System clock SLEEP_MODE_IDLE SLEEP_MODE_ADC SLEEP_MODE_EXT_STANDBY SLEEP_MODE_STANDBY SLEEP_MODE_PWR_SAVE SLEEP_MODE_PWR_DOWN Dieper slapen betekent: Minder hardware beschikbaar. Minder stroomverbruik. Langere tijd nodig om wakker te worden.

155 Slaapstanden Voorbeeld ATmega32A Icc MAX bij f CPU =8 MHz en Vcc=5 V. Active: 15 mA, Idle: 8 mA, Power Down: 20 μA. #include ISR(TIMER1_COMPA_vect) { PORTB ^= 0x01; } int main(void) { DDRB = 0xFF; PORTB = 0xFF; OCR1A = 1799; TCCR1B = 0x0D; TIMSK |= (1<<OCIE1A); sei(); set_sleep_mode(SLEEP_MODE_IDLE); while (1) { sleep_mode(); } return 0; }

156 T/C2 Asynchronous mode Timer/Counter2 kan in een asynchrone mode gebruikt worden. Wordt dan geklokt met apart horloge kristal kHz aangesloten op TOSC1 = PC6 en TOSC2 = PC7. Ons STK500 practicumbord heeft zo’n kristal. AS2 = 1 : Asynchrone mode XXXXUB (Update Busy) = 1 : schrijven XXXX register is nog niet klaar.

157 T/C2 Asynchronous mode #include ISR(TIMER2_OVF_vect) { PORTB ^= 0x01; } int main(void) { DDRB = 0xFF; PORTB = 0xFF; ASSR |= (1<<AS2); TCCR2 = 0x04; TIMSK |= (1<<TOIE2); sei(); set_sleep_mode(SLEEP_MODE_PWR_SAVE); while (1) { sleep_mode(); } return 0; }