Gå til innhold

Programmere LCD-display (ikke LCDsmartie)


Anbefalte innlegg

Vi har nå så smått begynt å programmere, og teste dette på et lite oppsett med 8 brytere og 8 lysdioder. Problemet ligger nå i at samtlige lysdioder lyser, uansett hvilken bryter vi skulle finne på å aktivere.

 

Gode forslag og velmenende råd mottas med takk.

 

EDIT: MvH Iceman™, som ble satt til å skrive, da Noxy heller ville sitte og sove.

 

EDIT: Koden vi har programmert AVRen med:

#include <avr/io.h>
#include <avr/iom16.h>


int main(void)
{
DDRD = 0x00;	//portD settes til innganger - fra HAUK
PORTD = 0x00;	//portD verdi 00

DDRC = 0xFF;	//portC settes til utganger - til buffer IC
PORTC = 0x00;	//portC verdi 00

char InnData = PIND;	//lesing av verdi portD -> PIN X

//HENTE OG SENDE DATA
while (1)	//hovedprogramløkke
{

InnData = PIND;  //leser ny verdi fra portD

PORTC = InnData;	//setter utdata på C lik inndata på D

}

return 1;

}

Endret av Noxy
Lenke til kommentar
Videoannonse
Annonse

Tror at lysene lyser konstant fordi AVR'en bruker en cached verdi som ble satt til null ved

 

char InnData = PIND (=0x00)

 

Når du kjører whileløkka henter AVRen verdien til InnData som ligger i cachen. Ved å sette "volatile" foran "char InnData" tvinger du AVRen til å lese inn ny verdi hver gang den trenger verdien i "InnData"

Lenke til kommentar

prøvde å bruke "volatile char innData = PIND;" uten at det ga noe annet resultat.

 

Skal lese om pull-up motstandene nå, så får vi se hvordan det går utover dagen.

 

edit: legger ved tegningen av testkortet vårt.

post-24223-1143793301_thumb.jpg

Endret av Noxy
Lenke til kommentar
  • 2 uker senere...

trur jeg vet hva problemet er.

 

avren kan ha pull-up, men har ikke pull-down. så på inngangen (knappene deres) vil dere alltid ha +5volt hvis dere bruker pull-up, og dere vil ha +5volt eller en uspesifisert spenning når knappen ikke er inntrykt om dere ikke bruker pull-up. De kan hende at den uspesifiserte spenningen tolkes som +5 volt, hvilket vil føre til at alle leddene lyser konstant.

 

2 løsninger:

bruk intern pull-up på inngangene og koble bryterne til jord i stede for +5volt (og litt omskriving i koden siden alt blir omvendt, 0 blir 1 osv)

 

eller:

 

koble en motstand mellom hver inngangspinne på avren og til jord som gir en pull-down slik at du sikrer at pinnen er koblet til jord når knappen ikke er trykket inn.

 

(har vært i USA så svaret kommer kanskje litt sent...)

Endret av Dr_VingTor
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...