Tai vat.. Prisimenu pas dest. Kirvaiti darem visokius ten postumius ir tas
dalykas veikdavo, sumasciau, kad galima prie Attiny45 prisjungti LCD ir tam
uztektu poros laidu ir papildomo postumio registro. Tik serti teks
nuoseklius duomenis, o paskui jie turetu iskristi kaip lygiagretus. Vienok
cia jau ne EWB simuliacija, tai pagooglinau, is esmes ta mintis
pasitvirtino, schema nesudetinga, nors vistiek padariau truputi kitaip. Po
darbo pradejau rasyti ir stai surasiau toki dalyka (bet uztruko, kol
pagaliau davedziau kad kompiliuotu be klaidu). Imetu jusu patikrai. Cia
zinoma tik pati pradzia, bet je imastau teisingai tai kritikos neturetu buti
per daug. O uz patarimus didelis aciu.
/*
* Attiny___LCD.cpp
*
* Created: 2014.09.18 21:33:53
* Author: Shadowed
*/
# define F_CPU 4000000UL // nustau CPU dazni 4MHz, butina definint pries
"includus", nes delay.h turi savyje ta define su 1MHz nustatymu, o kazkuris
// kitas neturi - susipyksta ir ismeta error
"F_CPU not defined for <util/delay.h>"
#include <avr/io.h> // kai apgaubta <> - neiesko failo darbineje
direktorijoje (jei " " tada iesko),
#include <inttypes.h> // abu variantai iesko defaultineje h vietoje
#include <avr/interrupt.h>
#include <util/delay.h>
#include <avr/iotn45.h>
#define duomenys PB1 // nurodomas duomenų kontaktas is Attiny45 i
74LS164D (6 pinas)
#define takt_daznis PB0 // nurodomas taktinio daznio kontaktas is
Attiny45 i 74LS164D (5 pinas)
/* 74LS164D ir LCD jungimas:
QA -- DB7 \
QB -- DB6 \_Naudosiu 4 bitu duomenu
perdavima, todel tik 4 LCD kojos pajungtos
QC -- DB5 /
QD -- DB4 /
QE -- --
QF -- --
QG -- RS
QH -- E (per dioda) */
void attiny45(void) //Sureguliuojam attiny45, nustatant visuose
pinuose 0 ir reikalingus pinus kaip isejimus (1 - isejimas, 0 - iejimas)
{
PORTB = 0; // Visi uCPU pinai nustatomi i
zema lygi
DDRB = (1<<duomenys)|(1<<takt_daznis); // Auksciau aprasyti (define)
pinai PB1 ir PB0 kaip "duomenys" ir "takt_daznis".
}
int main(void)
{
while(1)
{
//TODO:: Please write your application code
}
}