Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

ATMega32 I2C MIKEL50 Fremvisning Eksamensprosjekt HIVE void skrivtemp(void) { unsigned char temp1; twi_start(); twi_slave_select(0b1001000, READ);

Liknende presentasjoner


Presentasjon om: "ATMega32 I2C MIKEL50 Fremvisning Eksamensprosjekt HIVE void skrivtemp(void) { unsigned char temp1; twi_start(); twi_slave_select(0b1001000, READ);"— Utskrift av presentasjonen:

1 ATMega32 STK500 @ I2C MIKEL50 Fremvisning Eksamensprosjekt HIVE void skrivtemp(void) { unsigned char temp1; twi_start(); twi_slave_select(0b1001000, READ); temp1 = twi_read_byte(ACK); twi_read_byte(NACK); twi_stop(); printf("Temp:%d\r\n", temp1); }

2 Teknologi Om ATMega32: •AVR MCU utviklet av ASIC og solgt til Atmel. •ATMega32 (Basert på en Modifisert Harward arkitektur) •8-bit mikrokontroller, 32k flash og 2048bytes RAM. •Innebygde funksjoner som ADC, PWM, I2C og mer. •RISC instruksjonssett. Om I2C: •I2C utviklet av Phillips. •Seriell kommunikasjon mellom slaver og en master opptil 3,4Mbit (High speed). •Applikasjoner på mange områder: RTC, ADC, DAC, Temp med mer… •Veldig utbredt og ikke særlig komplekst å bruke.

3 Prosjekt oppgave •Ved hjelp av STK500 kit, bruk I2C til å kommunisere med en RTC og en temperatur føler for å så vise resultatet over RS232. STK500 I2C kort, med RTC og LM75 Temp

4 Kode Kildekode: •Lese, skrive fra I2C og ”printe” ut på terminal via RS232. •Kildekode, skrive til klokke: void stillklokke() { //Still klokka twi_start(); twi_slave_select(0b1101000, WRITE); //Klokke, skriv twi_write(0x00); //Velger adressen som skal lese fra twi_write(0b00000000); //hundredeler. Trengs ikke stilles twi_write(0b00000000); //sekunder. MSB stiller 0-5sek | LSB stiller 0-9sek twi_write(0b00000000); //minutter. MSB stiller 0-5min | LSB stiller 0-9min twi_write(0b00000000); //timer. MSB stiller 0,1,2h | LSB stiller 0-9h twi_write(NACK); twi_stop(); } •Kildekode, lese fra temp: void skrivtemp(void) { unsigned char temp1; twi_start(); //starter TWI twi_slave_select(0b1001000, READ); //Temperatur temp1 = twi_read_byte(ACK); //Hentes fra twi.c, lagres i temp1. twi_read_byte(NACK); //Hentes fra twi.c twi_stop(); printf("Temp:%d\r\n", temp1); } •Kildekode, main: while (1) { lesklokke(); //Leser klokka skrivtemp(); //Skriver ut temperatur delay_ms(1000); //Delay på 1 sekund };

5 Resultat Ettertanke: •Stille klokke funksjon. •Lese ut flere parameter av klokke. •LCD display. •Kalibrering av temperatursensor. Bilde av terminal her


Laste ned ppt "ATMega32 I2C MIKEL50 Fremvisning Eksamensprosjekt HIVE void skrivtemp(void) { unsigned char temp1; twi_start(); twi_slave_select(0b1001000, READ);"

Liknende presentasjoner


Annonser fra Google