Nokia és egyéb telefon LCD-k
Igazság szerint van egy ilyen ki cuccom: http://skyduino.files.wordpress.com/201 ... 040729.jpg szal a 3.3 adott. Csak a netet bújva láttam hogy az lcd bizonyos portjára kell még egy kis kerámiakondi (vagy az a 3310-nél volt?) vagy ilyen apróságok ami miatt miután összerakja az ember az istenért nem akar működniRobert írta:Én a rendszer 5V-bol allitottam elo a 3.3V-ot , nem az alaplapi 3.3-at használtam. LP2950-33 vagy LM1117-33.
Es a tapfesz 5V-t, 3.3V-ot 100nF keramiaval szurtem (szokasos elovigyazatosag).
Valaminek mindig közbe kell jönnie... Úgy látszik hogy nekem pont más lcd-m van, mert inverzek a szinek valamint y-tengelyen tükrözve van a kijelzés :S olvastam valahol hogy vannak ilyen modulok. Mit lehetne ezzel csinálni? Próbáltam keresni az mcselec fórumon de nem találtam még semmit.
Más, a háttérvilágításhoz szükséges 6V honnan szerezhető be legegyszerűbben?
Más, a háttérvilágításhoz szükséges 6V honnan szerezhető be legegyszerűbben?
igen megtaláltam,Robert írta:stepup valami.
MC33034 ic (fejből)
Az inverz stb, van rá az adatlapban parancs és helyrerakja.
Kód: Egész kijelölése
Glcdcmd &H21
Glcdcmd &H36
Re: Nokia és egyéb telefon LCD-k
Hali,
írtam egy programot ami egy atmega 168 3 pwm lábát szabályozza, és kiírja egy 3310-es kijelzőre. Proteus szimulátorban megy, a megépített hardverben csak akkor működik ha kitörölöm a másik 2 csatorna szabályozást a programból. A kijelzőre írok rosszul, vagy a programom bug-os?
írtam egy programot ami egy atmega 168 3 pwm lábát szabályozza, és kiírja egy 3310-es kijelzőre. Proteus szimulátorban megy, a megépített hardverben csak akkor működik ha kitörölöm a másik 2 csatorna szabályozást a programból. A kijelzőre írok rosszul, vagy a programom bug-os?
Kód: Egész kijelölése
#include <avr/io.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <util/delay.h>
#include <avr/pgmspace.h>
#include "lcd.h"
void pwm ();
volatile int pwm_dysp;
volatile int pwm_dysp2;
volatile int pwm_dysp3;
char int1str[10];
char int2str[10];
char int3str[10];
int main(void)
{
DDRB= (1<<PINB1) | (1<<PINB2) | (1<<PINB3);
DDRD=0x00;
PORTD=0xFF;
TCCR1A|=(1<<COM1A1)|(0<<COM1A0)|(1<<COM1B1)|(0<<COM1B0)|(1<<COM2A1)|(0<<COM2A0)|(1<<WGM10);
TCCR1B|=(1<<WGM12)|(1<<CS11);
TCCR2A|=(1<<COM2A1)|(0<<COM2A0)|(1<<WGM20)|(1<<WGM21);
TCCR2B|=(1<<CS21);
lcd_init();
_delay_ms(100);
lcd_contrast(0x10);
lcd_clear();
pwm_dysp = 0;
pwm_dysp2 = 0;
pwm_dysp3 = 0;
for(;;)
{
pwm();
}
}
void pwm()
{
unsigned int w;
// char str1[10];
// char str2[10];
unsigned int W;
// char str3[10];
// char str4[10];
unsigned int A;
// char str5[10];
// char str6[10];
/***********************************************************/ //PIROS
if(bit_is_clear(PIND,0) || bit_is_clear(PIND,1))
{
while(bit_is_clear(PIND,0) || bit_is_clear(PIND,1))
{
if(bit_is_clear(PIND,0) && OCR1A<255)OCR1A+=5;
if(bit_is_clear(PIND,1) && OCR1A>0)OCR1A-=5;
if(bit_is_clear(PIND,0) && pwm_dysp<100) pwm_dysp+=2;
if(bit_is_clear(PIND,1) && pwm_dysp>0) pwm_dysp-=2;
lcd_clear_area(1,50,83);
//itoa(pwm_dysp/10,str1,10);
//itoa(pwm_dysp%10,str2,10);
//sprintf(int1str,"%s.%s", str1, str2);
itoa(pwm_dysp,int1str,10);
w = strlen(int1str);
lcd_goto_xy(13 - w,1);
lcd_str(int1str);
lcd_goto_xy(14,1);
lcd_str("%");
_delay_ms(20);
}
}
/**************************************/ //ZÖLD
if(bit_is_clear(PIND,2) || bit_is_clear(PIND,3))
{
while(bit_is_clear(PIND,2) || bit_is_clear(PIND,3))
{
if(bit_is_clear(PIND,2) && OCR2A<255) OCR2A+=5;
if(bit_is_clear(PIND,3) && OCR2A>0) OCR2A-=5;
if(bit_is_clear(PIND,2) && pwm_dysp2<100) pwm_dysp2+=2;
if(bit_is_clear(PIND,3) && pwm_dysp2>0) pwm_dysp2-=2;
lcd_clear_area(2,50,83);
//itoa(pwm_dysp2/10,str3,10);
//itoa(pwm_dysp2%10,str4,10);
//sprintf(int2str,"%s.%s", str3, str4);
itoa(pwm_dysp2,int2str,10);
W = strlen(int2str);
lcd_goto_xy(13 - W,2);
lcd_str(int2str);
lcd_goto_xy(14,2);
lcd_str("%");
_delay_ms(20);
}
}
/****************************/ //KÉK
if(bit_is_clear(PIND,4) || bit_is_clear(PIND,5))
{
while(bit_is_clear(PIND,4) || bit_is_clear(PIND,5))
{
if(bit_is_clear(PIND,4) && OCR1B<255) OCR1B+=5;
if(bit_is_clear(PIND,5) && OCR1B>0) OCR1B-=5;
if(bit_is_clear(PIND,4) && pwm_dysp3<100) pwm_dysp3+=2;
if(bit_is_clear(PIND,5) && pwm_dysp3>0) pwm_dysp3-=2;
lcd_clear_area(3,50,83);
//itoa(pwm_dysp3/10,str5,10);
//itoa(pwm_dysp3%10,str6,10);
//sprintf(int3str,"%s.%s", str5, str6);
itoa(pwm_dysp3,int3str,10);
A = strlen(int3str);
lcd_goto_xy(13 - A,3);
lcd_str(int3str);
lcd_goto_xy(14,3);
lcd_str("%");
_delay_ms(20);
}
}
}
Re: Nokia és egyéb telefon LCD-k
Szerintem a szimulátor nem tudja a valós sebességet utánozni.
Ezért látod a kijelzőt.
Viszont a valós HW olyan gyors, hogy a szemed nem tudja követni a változás sebességét.
Ezért látod a kijelzőt.
Viszont a valós HW olyan gyors, hogy a szemed nem tudja követni a változás sebességét.
Re: Nokia és egyéb telefon LCD-k
Értem, köszönöm, majd még kitalálom mi legyen vele.