Jag handlade mig en display till Nokia 3310 på ebay för att de sägs vara smidiga att arbeta med.
Dock har jag nu suttit några dagar och försökt få igång den utan att lyckas. Eftersom den är köpt på ebay så kanske man inte kan lita 100% på att den är hel. Därför undrar jag om någon har tips på hur jag kan testa att den lever och konstatera att det är jag är dålig

Jag använder en ATmega168 och har hittat ett lib som borde fungera. På kommentarerna verkar det som att folk fått igång displayen.
nokia-3310-pcd8544-driver
Jag har kopplat enligt hans schema och dubbelkollat att allt är kopplat rätt. Enligt databald och forumposter så förstår jag det som att displayen endast vill ha 3.3V och inte 5V som det står i hans schema och därför har hela min labbplatta 3.3V för det fungerar avr:en på ändå.
Jag kör min ATmega168 på intern 8MHz medan han verkar kört sin ATmega8 på 4MHz. Kan det vara boven i dramat?
Nedan kommer den koden jag använder. Har även en lysdiod som blinkar för att få något livstecken ur min avr och den blinkar på som den ska. Kompilering ger inga fel eller varningar. Bifogar inte libfilerna om ni inte vill ha dom. Har inte gjort några ändringar där.
pcd8544.h
Kod: Markera allt
/* LCD Port */
#define LCD_PORT PORTB
#define LCD_DDR DDRB
/* ATMega8 port pinout for LCD. */
/* 0.2.6 bug, fixed */
#define LCD_DC_PIN PB0 /* Pin 0 */
#define LCD_CE_PIN PB2 /* Pin 2 */
#define SPI_MOSI_PIN PB3 /* Pin 3 */
#define LCD_RST_PIN PB4 /* Pin 4 */
#define SPI_CLK_PIN PB5 /* Pin 5 */
Kod: Markera allt
#include <avr/io.h>
#include <util/delay.h>
#include <avr/pgmspace.h>
#include "pcd8544.h"
void ioinit(void);
int main(void) {
ioinit();
LcdInit();
LcdClear();
LcdFStr(FONT_1X,(unsigned char*)PSTR("Test"));
LcdUpdate();
_delay_ms(1000);
LcdContrast(0x00);
LcdUpdate();
_delay_ms(1000);
//display string
LcdClear();
LcdGotoXYFont(1,1);
LcdFStr(FONT_1X,(unsigned char*)PSTR("Test"));
LcdGotoXYFont(1,2);
LcdFStr(FONT_1X,(unsigned char*)PSTR("Goto Test"));
LcdUpdate();
_delay_ms(5000);
while(1) {
PORTD = 0x00;
_delay_ms(1000);
PORTD = 0x80;
_delay_ms(1000);
}
return(0);
}
void ioinit (void) {
//1 = output, 0 = input
DDRD = 0b11111111; //All outputs
}