Kaikki kirjoittajan Mikko Esala artikkelit

PWM lähdön ohjaus 8bittisenä (OCR2)

ATmega piireissä on PWM lähtöjä joita voi ohjata ohjelmallisesti.
OCR2 = Output Compere Register 2 on 8Bittinen, jolloin säätöalue muuttujalla on 0-255. OCR2 arvolla 0 PWM on 0% ja 255 tasolla on 100% PWM suhde.

Ohjelmassa voidaan määritellä kellojakajaa joka määrittää PWM lähtötaajuuden suuruuden.
TCCR2 rekisterissä voidaan määritellä jakajan ja toiminteen miten lähtönasta toimii.

TCCR2=0x61; //vaihekorjattu PWM ja jakaja on 1

 

Viive komento

Ohjelmaan tarvitaan monesti lyhyitä viiveitä jolla voidaan stabiloida tai ajastaa tiettyjä toimintoja.

Atmel Studiolla voidaan asettaa viive seuraavasti:
_delay_ms(4000); // asettaa 4s viiveen ohjelmassa

Codevisionila viive asetetaan seuraavalla komennolla:
delay_ms(4000); //asettaa 4s viiveen ohjelmassa

Kellotaajuuden määrittäminen ohjelmaan

delay komento tarvitsee tiedon millä toimintataajudella mikro-ohjain toimii, jotta viive on oikean pituinen.

Mikro-ohjaimessa voi käyttää ulkoista tai sisästä kellotaajuutta, ulkoisessa asetuksessa tarvitaan joko kide tai resonaattori, joka tuottaa mikro-ohjaimelle toimintataajuuden.

Atmel Studiolla määritetään kellotaajuus seuraavasti:
#ifndef F_CPU
#define F_CPU 8000000UL // 8MHz clock speed
#endif

Kirjastot

Ohjelmoidessa tarvitaan kirjastoita, jotta kääntäjä ymmärtää komentoja ja ymmärtää mikro-ohjaimen pinnijärjestelmän.

Kirjastot merkitään seuraavasti ohjelmaan:

#include <stdio.h>
#include <math.h>#include <avr/io.h>
#include <util/delay.h>

Lämpömittari NTC anturilla

Ohjeinen lisäkortti voidaan asentaa emokortin C-porttiin, josta luetaan NTC-anturin näyte, josta lasketaan lämpötila.
Kortilla on yksi kiinteä NTC vastus, joka mittaa kortin lämpötilaa ja sitten riviliittimeen voi laittaa toisen NTC anturin joka voidaan laittaa mittaamaan ulkolämpötilaa.

Anturikortin osasijoittelu
Anturikortin osasijoittelu

Anturikortin piirilevy, jonka koko on 100x160mm, jossa 20kpl anturikortteja. Anturikortin piirikaavio.

Lämpötilan näkee LCD-näytöllä johon on myös piirikortti.

Ohjelman Hex tiedosto.

Testikortti B, C ja D portilla

Testikortilla voi testata väylän toiminnan ja sen lisäksi kortti kertoo onko väylällä napajännitteet.

atmega8_testikortti_euro1
Piirikortin layout. Vasemman puoleinen liitin B ja C portin testaukseen ja oikeampi osuus on D-portin testaukseen.

Osaluettelo:
Lattakaapeliliitin 10napainen
Led 3mm 17kpl
Vastukset 1kpl 100Ω, loput 470Ω-1000Ω

Testikoodi HEX muodossa

Porttien DDR rekisteri asetukset

Porttien asetetaan joko sisääntuloksi tai ulostuloksi DDR rekisterillä

  • Jos halutaan B-portissa vähiten merkitsevä pinni ulostuloksi DDRB=0x01;
  • Jos halutaan B-portissa kaikki bitit ulostuloiksi jotka on kytketty lattakaapeli liittimeen -> DDRB=0x3F;
  • Jos halutaan C-portti sisääntuloksi DDRC=0x00;
  • Jos halutaan C-portti ulostuloksi DDRC=0x3F;