Začínáme s PK Design
Úvodem
Vývojové desky PK-design, slouží jako velmi levná, ale zároveň velmi kvalitní alternativa k jiným komerčním kitům. Jedná se o modulární systém, kdy základní částí je základní deska s vybraným typem procesoru, zdrojem, rozšiřujícími konektory pro porty, zdrojem napětí pro AD převodník, patící pro hodinový krystal a samozřejmě také konetory pro ISP a JTAG. Dále deska obsahuje rozhraní pro RS232, v budoucnu prý také pro USB.K základní desce je možné připojit rozšiřující moduly (LED, tlačítek, LCD, LCD displejů, PS2, VGA, a jiné) a to přímo na rozšiřující konetory základní desky a nebo přes propojovací kablíky.
Více informací o základních deskách a rozšiřujících modulech na http://pk-design.net
Jak vývojový kit získat
Vývojový kit PK-design je možné zakoupit přímo u výrobce, nebo v našem připravovaném e-shopu a to za stejnou cenu. Spuštění e-shopu plánujeme na konec února 2007.Vybalíme a pracujeme
Jakmile si odnesete vývojovou desku domů, můžete ihned začít pracovat, doporučuji ale přečíst si poctivě návod k použití, protože neopatrností je možné si kit zničit. Ale tak je to se vším...Mimo základovou desku je dobré pořídíit si alespoň některé základní periferie. Určitě doporučuji programátor. Lze sice použít programátory od jiného výrobce, ale je nutné si na ně vytvářet ve většině případů redukce a to nedoporučuji. Navíc ovládací program pro programátor je možné si zdarma stáhnout z webu výrobce. Tento program je velice přehledný a značně napomáhá při nastavení fuse bitů, které jsou často špatně nastavovány a v mnoha případech si tak znemožníme další práci s čipem.
Pro dnešek jsem si vybral následující konfiguraci:
- Základová deska MB-ATmega16/32(L) v2.0.
- Mini modul 8 SMD LED diod levý
- Mini modul 8 SMD LED diod pravý
Tady je příklad napsaný v CodeVision:
#include <mega16.h>
// Timer 1 output compare A interrupt service routine
interrupt [TIM1_COMPA] void timer1_compa_isr(void)
{
PORTA = ~PORTA;
}
void main(void)
{
PORTA=0xFF;
DDRA=0xFF;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 14,400 kHz
// Mode: CTC top=OCR1A
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: On
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x0D;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x38;
OCR1AL=0x40;
OCR1BH=0x00;
OCR1BL=0x00;
TIMSK=0x10;
ACSR=0x80;
SFIOR=0x00;
// Global enable interrupts
#asm("sei")
while (1)
{
// Place your code here
};
}
Tímto příkladem jsme nakousli i tématiku přístího dílu. Jedná se o přerušení. Pro jednoduchost pouze vysvětlím, že přerušení je taková vlastnosti procesoru, která obstará vykonání určité části kódu při vzniku jasně specifikované události. V našem případě se jedná o rovnost registrů TCNT1 a OCR1A. V tomto případě je vykonána funce:
// Timer 1 output compare A interrupt service routine
interrupt [TIM1_COMPA] void timer1_compa_isr(void)
{
PORTA = ~PORTA;
}
Tato část kódu pouze invertuje PORTA, čímž při vzniku každého přerušení zajistí změnu stavu LED. Pěknější efekty ukazuje následující příklad, který si můžete stáhnout zde. Pro správnou funkci příkladu je nutné mít zasunutý levý modul LED v konektoru CON1 a to na pinech příslušenících portu A. Od výrobce je nastaven externí krystal 14,7456 MHz. S naším nastavením čítače časovače, by měly LED v prvním příkladě blikat s frekvecí 2Hz (přibližně).
Před začátkem práce s vývojovou deskou si překontrolujte správné nastavení jumperu JP2, určujícího zdroj hodinového signálu. Musí být nastaven na externí krystal. Bez tohoto nastavení nepůjde čip ani naprogramovat.
Příště se dopodrobna podíváme na přerušení a jejich využití.
Komentovat článek
Komentáře k článku
článek zatím nikdo nekomentoval

