Hallo
Even een voorbeeld schakeling gemaakt.
De pic rechtstreeks aangesloten op de registers
aansluitingen zie programma.
Dit werkt niet
Het geheel werkt wel als ik portb.3(ShiftDataIn) met een weerstand van 220 ohm naar massa plaats.
Zogauw ik deze weerstand verhoog werkt het niet meer
Ik vindt de weerstand van 220 ohm zo laag
blijft dit wel goed gaan.
Device 16F73 ;Gebruik een 16F73 type Alleen byteportB heeft pullups
XTAL = 4
ALL_DIGITAL = TRUE
PORTB_PULLUPS On
PORTA = %11111111
PORTB = %00000000
PORTC = %00000000
TRISA = %11111111
TRISB = %00000000
TRISC = %00000000
Symbol ShiftDataIn = PORTB.3
Symbol ShiftOpslag = PORTB.1
Symbol ShiftClk = PORTB.0
Symbol ShiftDataOut = PORTB.2
Symbol Reseten = PORTB.7
Dim Var1 As Byte
Dim Var2 As Byte
;programma
Reseten=1
While 1 = 1
High ShiftOpslag
SHIn ShiftDataIn, ShiftClk, lsbpre, [Var2, Var1] 'Laden van de 74HC165
Low ShiftOpslag
SHOut ShiftDataOut, ShiftClk, lsbfirst,[Var1, Var2] 'Uitlezen van de 74HC595
PulsOut ShiftOpslag,5
WendFrits Kieftenbelt
Ohm sweet Ohm | www.picbasic.nl
(Volgende keer de PICBasic code tussen code tags a.u.b)
Die 220 Ohm zou niet nodig moeten zijn, bovendien is 220 Ohm veel te gek.
Probeer het eens uit op een poort die geen pull-up heeft.
Overigens altijd de regel PORTB_PULLUPS ON ná de TRIS instellingen plaatsen
Zie onderaan op www.picbasic.nl/info_pull-up.htm
Ook een DELAYMS 100 aan het begin van je code zou niet gek zijn (voor signaal stabilisering bij opstart van je schakeling).
Bedankt Frits
Geprobeerd op port.C een de Delayms er voor gezet en exact de zelfde
werking.
dus goed werkend als de weerstand van 220 ohm tussen DataShiftIn en massa zit.
wat kan dit nu zijn
Uren later
Ik ben er nu achter gekomen dat als het de eerste keer
het programma door loopt wel goed gaat
maar als die voor de tweede keer door het programma loopt gaat het fout
dan worden alle uitgangen op de 74595 allemaal 1
zegt dit iets
Frits Kieftenbelt
Ohm sweet Ohm | www.picbasic.nl
Je hebt iets niet fijn zitten.
Ik kan zo op afstand niet zien wat er fout zit, loop alle draden nog eens na (vooral de aansluitingen aan de pinnen van de 74HCxxx chips (heb je bijvoorbeeld de Output Enable (pin 13) van de 74HC595 aan GND verbonden?).
Bij mij thuis werkt het prima: 3 stuks 74HC595 en 2 stuks 74HC165 staan allen in serie en met een gezamelijke kloklijn.
Probeer het eens los van elkaar, dus eerst alleen een 74HC595 met SHOUT aansturen.
En daarna alleen een 74HC165 met SHIN.
He mooi schematje cursus 11 is dus in de maak (kan niet wachten)
Ik heb een test printje gemaakt met 2x de 74hc165
met 2x8 schakelaars en pullup weerstanden
print is verbonden via een header van 10 pin met een flat kabel (20 cm)
naar de moederboard pic controller
en zo is er ook een printje voor de 74hc595
het programma werkt als ik while 1=1 en wend vervang voor start: en End
dus als die 1 keer het progr. langs loopt gaat het goed en de tweede keer gaat het fout
de fout zit bij
High ShiftOpslag
SHIn ShiftDataIn, ShiftClk, lsbpre, [Var2, Var1] 'Laden van de 74HC165
Low ShiftOpslagheb ze los van elkaar getest
andere deel werkt perfect
Maar als het de eerste programma loop wel goed gaat kan het dan toch nog een hardware probleem zijn
Frits Kieftenbelt
Ohm sweet Ohm | www.picbasic.nl
Doe eens:
LOW ShiftOpslag ;Ingangen laden
DELAYMS 1 ;Puls 1 mSec aanhouden
HIGH ShiftOpslag ;Disable de loadpin (pin 1 van de 74HC165)
SHIN ShiftDataIn, ShiftClk, lsbpre, [Var2, Var1]
DELAYMS 1Die laatste DELAYMS kan mogelijk vervallen (even experimenteren).
De naam ShiftOpslag klopt eigenlijk niet, maak iets van LaadIngangen of LoadInputs, o.i.d.
Nou moe
Frits ik begrijp er niks meer van maar nou werkt het perfect.
Hartelijk dank voor je geduld
Hans