Sida 2 av 2

Postat: 14 november 2007, 21:27:19
av Icecap
Utgångslatchen blir satt MEN bit-setting är ju en Read-Modify-Write så den läser först Port A, setter biten och sedan skrivs värdet tillbaka till Port A's utgångslatch. Då denna utgångslatch inte är inkopplat (utgången är tri-state) sker det inte ett skvatt så länge TRISA håller port-pinnen som ingång.

Kommandot är alltså helt legalt men totalt onödigt, är det dit du vill komma?

Postat: 14 november 2007, 21:27:54
av sodjan
Ja, hm, inte helt med på vad du syftar på.
Att sätta pinnarna (d.v.s "output latch") till hög eller låg och
sedan fippla med TRIS ?

Om frågan var om det går att "styra" nivån på en pinne som
via TRIS är definierad som ingång, så är, så vitt jag förstår,
svaret alltid nej.

> Haxxkatt försöker ju sätta PORTA.F1=0;

Visst, man kan göra PORTA.F1=0 oavsett hur TRIS är satt, men
det är inte säkert att det påverkar själva *pinnen*. Däremot gör
man ibland så för att vara förberedd när man sedan sätter om
pinnen till utgång...

EDIT: Såg Icecap's senaste först nu...
Jo, det stämmer, det är en sidoeffekt av att köra RMW mot en port
samtidigt som man grejar med TRIS fram och tillbaka...

Postat: 14 november 2007, 21:29:47
av net4all
Ok, I get it....

Postat: 14 november 2007, 21:32:00
av sodjan
OK.
Men det riktigt intressanta i tråden är att vi (eller åtminstånde jag)
fortfarande inte riktigt vet vad som var ursprungsproblemet... :-)

Postat: 14 november 2007, 21:36:10
av net4all
Mmm, speakman ändrade lite i koden, flyttade en delay-funktion.
Kanske löste det? Vem vet? Inte jag....

Vill veta mer om problemet!

Postat: 14 november 2007, 23:41:55
av speakman
Inte jag heller, för trådskaparen verkar åkt på semester. :)

funkar nu..

Postat: 16 november 2007, 12:55:17
av Haxxkatt
Bytte så att vi programmerade i Proton istället och då funkade allt:)

Postat: 16 november 2007, 13:12:54
av speakman
Jaha? Proton?