Sida 2 av 3

Re: PIC16F886 + HD44780 display

Postat: 14 maj 2009, 15:49:51
av bearing
Jag förstår inte vad du menar med TMR0. Den tickar ju hela tiden, det är det som är syftet liksom.

Re: PIC16F886 + HD44780 display

Postat: 14 maj 2009, 16:00:17
av Scorpiion
Hehe det är de att du inte rktigt förstår vad jag skriver... :p den tickar på ja... om du använder porta...

Men problem är när man istället byter till portb! :) då tickar inte TMR0.....

Re: PIC16F886 + HD44780 display

Postat: 14 maj 2009, 20:31:45
av Scorpiion
Nån som har någon ide vad det kan bero på..? :/

Re: PIC16F886 + HD44780 display

Postat: 14 maj 2009, 20:42:28
av bearing
MPSIM gör fel ibland. Bl.a. har jag märkt att USART med 9bit-kommunikation inte fungerar enligt databladet, däremot i kretsen. Utgångarna tillsammans med PWM-enheten fungerar inte heller riktigt som i kretsen.

Om TMR0 ändras skulle det ju kunna vara något med bankerna, om TMR0 är bankad.

Strunt i TMR0 och kolla istället med med logikanalysatorn om LCD-signalerna blir samma i båda versionerna.

Re: PIC16F886 + HD44780 display

Postat: 14 maj 2009, 21:20:43
av Scorpiion
Men om man inte har en logikanalysator till hands..? :P

Re: PIC16F886 + HD44780 display

Postat: 14 maj 2009, 21:47:23
av bearing
logikanalysatorn i MPSIM. har för mig det var view -> simulator logic analyser.

Re: PIC16F886 + HD44780 display

Postat: 14 maj 2009, 23:01:54
av Scorpiion
Okey tack viste inte att det fanns... :P Har testat ett tag nu men är svårt att hitta varför det inte funkar.. :/

Re: PIC16F886 + HD44780 display

Postat: 14 maj 2009, 23:05:35
av bearing
Blir inte signalerna identiska för de två versionerna?

Re: PIC16F886 + HD44780 display

Postat: 14 maj 2009, 23:25:42
av sodjan
Hur har du konfigurerat Timer0 ? Vad är det du vill att Timer0 ska göra ?
Jag fattar inte riktigt vad Timer0 har med detta att göra alls, förklara.

Re: PIC16F886 + HD44780 display

Postat: 15 maj 2009, 01:12:50
av v-g
Kolla BANKSEL innan du ställer in timern respektive slår på den. Har inte vart med om att MPSIM visat fel på timern.

Re: PIC16F886 + HD44780 display

Postat: 15 maj 2009, 11:36:35
av Scorpiion
"Hur har du konfigurerat Timer0 ? Vad är det du vill att Timer0 ska göra ?
Jag fattar inte riktigt vad Timer0 har med detta att göra alls, förklara."

Alltså jag har inte konfigurerat nångonting!

Jag har två projekt; test1 och test2;
test1 är kopierad rakt av från Sodjans hemsida
test2 är också kopierad rakt av och sen är de tre "define" längst upp i koden ändrade från porta till portb

Det är den kod som jag håller på med...

Re: PIC16F886 + HD44780 display

Postat: 15 maj 2009, 12:22:15
av sodjan
OK, då fattar jag ändå mindre av var Timer0 kommer in i bilden...
Aja, jag har tappat tråden i alla fall... :-)

Re: PIC16F886 + HD44780 display

Postat: 15 maj 2009, 13:09:38
av Scorpiion
Okey då kör vi en trådgenomgång...

Två kopier från Sodjans hemsida av HD44780 exempel, ett orginal som funkar för porta och så en som är ändrad för portb (ändrat "define .." från porta till porta)

I orginalkoden så räknas Timer0 upp! Se bilden som jag postade tidigare där kan man se hur den ändras....

Så tråden handlar om att göra om exemplet för hd44780 från porta till portb...

Re: PIC16F886 + HD44780 display

Postat: 15 maj 2009, 13:13:08
av sodjan
> I orginalkoden så räknas Timer0 upp!

Märkligt.
Men om det är ett problem så är det ju bara att stänga av den.
Jag måste kolla koden i MPLAB/SIM själv först...

> Så tråden handlar om att göra om exemplet för hd44780 från porta till portb...

Ja, det var så jag hade förstått det också. :-)

Re: PIC16F886 + HD44780 display

Postat: 15 maj 2009, 13:20:02
av bearing
Ja men TMR0 har ju inget med funktionen att göra, försöker vi andra säga. Den sätts ju inte ens i koden. Jag har dessutom gett en ide om varför den påverkas, att banken är fel när något annat register skrivs, så att TMR0 egentligen skrivs.

Är det inte bara så att prescalerna är hög i exemplet då TMR0 inte verkar ticka?

Än så länge verkar du ju inte verifierat att PORTB-koden inte fungerar i simuleringen. Du svarade iaf inte på min fråga.

1 Lägg till pinnar som är anslutna till LCD:n i logikanalysatorn, i båda projekten.
2 Sätt brytpunkt på lämpligt ställe, i båda projekten
3 Kör koden till brytpunkterna
4 Jämför signalerna
5 Gå till 2