Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  0 818
Har loddet sammen LCD og ATmega8 igjen, denne gang 4 bit mode, etter denne tegning http://www.pocketmagic.net/wp-conten...ayout-full.gif
Bruker PORTD, istedenfor PORTC
Prøver meg frem med LCD simulator http://www.dinceraydin.com/djlcdsim/djlcdsim.html
og bygger kode etter den.

Programmet ser ut til å virke til jeg har den blinkende markøre fremme.

Etter "while" linjen skulle det dukke opp bokstaver, nærmere bestemt f.
Men markøren forsvinne, ingen bokstaver dukker opp........

Kode

#define F_CPU 16000000	//Klokkefrekvens
#include <math.h>
#include <avr/io.h>
#include <util/delay.h>	//Header for _delay_ms()
#include "stdio.h"





int main(){
	DDRD = 0xFF;
	PORTD = 0x00;
	
	int tell=0;


//Sett 4 bit mode

		PORTD = 2;   //Data 0010
		_delay_ms(1);
		PORTD = 34;    //Data 0010 + Enable
		_delay_ms(1);
		PORTD = 2 ;    // Data 0010
		_delay_ms(1);

		PORTD = 0;    // Data 0000

		_delay_ms(1);
	
 		PORTD = 32;  // Enable
		_delay_ms(1);
		PORTD = 0;

		_delay_ms(1);
  



// Display ON/OFF control: display ON, cursor ON, blink ON,

		PORTD = 15;       //Data 1111
		_delay_ms(1);
		PORTD = 47;       //Data 1111  + Enable
     	_delay_ms(1);
		PORTD = 15;       //Data 1111
		_delay_ms(1);


		PORTD = 0;      //RS=1
		_delay_ms(1);
		PORTD = 32;    // Enable
		_delay_ms(1);
		PORTD = 0;
		_delay_ms(100);
		tell =0;

while(1){

 
		 
		PORTD = 6;        //Data 0110 ( 2 ganger gir f )
		_delay_ms(1); 

	
		_delay_ms(1);
		PORTD = 22;       //Data 0110 +RS
		_delay_ms(1);
		PORTD = 54;       //Data 0110 +RS + Enable
		_delay_ms(1);

		PORTD = 22;    //RS=1
		_delay_ms(1);
		PORTD = 54;
		_delay_ms(1);
		PORTD = 22;
		_delay_ms(1);


		PORTD = 16;    
		_delay_ms(1);
		PORTD = 22;
		_delay_ms(1);
		PORTD = 54;
		_delay_ms(1);

		PORTD = 22;    //RS=1
		_delay_ms(1);
		PORTD = 54;
		_delay_ms(1);
		PORTD = 22;
		_delay_ms(1);

		

		PORTD = 16;    
		_delay_ms(1);
		PORTD = 22;
		_delay_ms(1);
		PORTD = 54;
		_delay_ms(1);

		PORTD = 22;    //RS=1
		_delay_ms(1);
		PORTD = 54;
		_delay_ms(1);
		PORTD = 22;
		_delay_ms(1);

		PORTD = 22;    //RS=1
		_delay_ms(1);
		PORTD = 54;
		_delay_ms(1);
		PORTD = 22;
		_delay_ms(1000);


		






	}

}
Hva har jeg glemt/feilet med ?
Sist endret av asmika; 8. februar 2011 kl. 09:35. Grunn: Glemte tegning