|
Gepost op maandag 3 Januari 2011 00:30:20 |
 |
Wat bedoel je hier mee :
Code |
PulsOut ShiftOpslag, 5
|
Zet je daar een pulstrein op pin 1 van je 74hc165, denk dat daar iets niet klopt. Kijk nog eens een keer in de data sheet.
Spijtig dat ik zo geen ic heb, anders kon ik het ook eens testen. |
Veel te weinig tijd voor mijn projecten of heb ik er soms te veel? |
|
Gepost op maandag 3 Januari 2011 17:34:36 |
 |
Bij een 74HC595 (8 uitgangen) is die pulsout bedoeld om eerst de data "LED" te laden en daarna via een pulsout op de ic te "activeren". dacht dat dit ook nodig was bij ingangen. dat is de latch-pin. |
|
|
Gepost op maandag 3 Januari 2011 17:38:25 |
 |
Ik heb hier wat code van iemand die pic basic pro gebruikt. (Het is dus wss niet 100% compatible).
Hij gebruikt een loopje rond het ShiftIn commando:
Code |
STROBE = 0
PauseUs 20
STROBE = 1
PauseUs 20
For I = 1 TO AANTALIN
ShiftIn DATAI_O,KLOK,2,[INGBUFFER(I)8]
Next
|
|
Met vriendelijke groet, Stynus ||| www.elektronicastynus.be |
|
Gepost op maandag 3 Januari 2011 21:46:00 |
 |
Hier staat de oplossing, ik had gelijk wat betreft het aansturen van pin 1 van de 74hc165, dat deed je verkeert.
http://www.circuitsonline.net/forum/view/91144 |
Veel te weinig tijd voor mijn projecten of heb ik er soms te veel? |
|
Gepost op zaterdag 15 Februari 2014 10:37:48 |
 |
Ik stel mijn vraag hier even om het een beetje bijeen te houden.
Ik zit hier met idem een probleem met die 74HC165.
Ik gebruik een ipv een 16F628A een 18F4550.
Dit is mijn code .:
Code |
Device 18F4550
Xtal 20
'Tris . 76543210 Register volgorde
;TRISB = %11011100
TRISA=%00000000
TRISB=%01011000
TRISC=%00000000
TRISD=%00000000
TRISE=%00000000
;PORTA=0;ORTB=0
PORTC=0ORTD=0
PORTE=0
Declare LCD_DTPort = PORTD
Declare LCD_RSPin = PORTC.7
Declare LCD_ENPin = PORTE.0
Declare LCD_RWPin = PORTC.6
Declare LCD_CS1Pin = PORTE.1
Declare LCD_CS2Pin = PORTE.2
Declare LCD_Type = Samsung
Declare Internal_Font = On
Declare Font_Addr = 0
High PORTB.5 'rst pin oftwel reset pin
Declare GLCD_STROBE_DELAY = 5
Declare SCL_Pin = PORTB.1
Declare SDA_Pin = PORTB.0
;Declare Slow_Bus On
Symbol DataIn = PORTA.3 ;poort 9 van 74hc165
Symbol ClockOut = PORTA.2 ;poort 2 van 74hc165
Symbol ReadOut = PORTA.5 ;poort 1 van 74hc165
DelayMS 200 'stabilizza LCD
Cls
Dim var1 As Byte
DelayMS 500
loop:
Low ReadOut
DelayMS 10
High ReadOut
SHIn DataIn, ClockOut, LsbPre, [var18]
DelayMS 100
Cls
Print At 1,1, "ingang"
Print At 2,1, Bin var1
GoTo loop
|
Ik heb alles aangesloten zoals de link die Reddevil gaf http://www.circuitsonline.net/forum/view/91144
Alleen heb ik de 3 poorten aangepast.:
Code |
Symbol DataIn = PORTA.3 ;poort 9 van 74hc165
Symbol ClockOut = PORTA.2 ;poort 2 van 74hc165
Symbol ReadOut = PORTA.5 ;poort 1 van 74hc165
|
Maar op mijn display krijg ik alleen de tekst Ingang te zin en 1 nul
Maar voor de rest gebeurd er niets.
Normaal als ik bv toch op 1 van de poorten bv wissel tussen +5V of ground dat hij 1 of 0 moet aangeven.
Wat kan er fout zijn? |
http://pascalbianca.blogspot.nl/ |
|
Gepost op zaterdag 15 Februari 2014 10:55:53 |
 |
var8-1 schuine streep kun je niet gebruiken hier in het forum? [Bericht gewijzigd door Henk (NL) op Zaterdag 15 Februari 2014 10:58:42] |
|
|
Gepost op zaterdag 15 Februari 2014 10:56:52 |
 |
Ik mis ALL_DIGITAL TRUE in je code. Vooral op portA geeft dat rare dingen.
@Henk, als je quote doet zie je de slash wel. Forum geeft ze dus niet weer om een of andere reden . [Bericht gewijzigd door Stynus op Zaterdag 15 Februari 2014 10:57:51] |
Met vriendelijke groet, Stynus ||| www.elektronicastynus.be |
|
Gepost op zaterdag 15 Februari 2014 16:20:46 |
 |
Inderdaad @Stynus, die regel was ik vergeten en die deed de truc, stom dat dat zoveel effect heeft |
http://pascalbianca.blogspot.nl/ |
|
Gepost op zaterdag 15 Februari 2014 16:40:41 |
 |
Nu zal ik uiteraard een stomme vraag gaan stellen.
Ze zeggen dus dat die 74HC165 een extra uitbreiding is op je poorten van je IC.
Deze 74HC165 kan zowel de poorten of als ingangen gebruikt worden of als uitgangen.
In mijn test geval staat hij als ingangen, dus met ander woorden als ik een toch een bv. mijn LM35DZ erop zet zou ik toch een temperatuur moeten kunnen meten of zie ik dat verkeerd met het principe van die 74HC165 ? |
http://pascalbianca.blogspot.nl/ |
|
Gepost op zaterdag 15 Februari 2014 19:07:30 |
 |
Quote | Nu zal ik uiteraard een stomme vraag gaan stellen. |
Nou?
Quote | bv. mijn LM35DZ erop zet zou ik toch een temperatuur moeten kunnen meten of zie ik dat verkeerd met het principe van die 74HC165 ? |
Nu snap ik het!
Je knoopt een (analoge) LM35DZ aan 'n (digitale) ingang van de 74HC165 |
|
|
Gepost op zaterdag 15 Februari 2014 20:07:48 |
 |
Mmmm, zoals jij het nu zegt klinkt het inderdaad logisch dat het niet zal gaan werken.
Is het eventueel wel mogelijk met een PCF8574P I2C Remote 8 bit I/O Exp.
Als dat zo is dan kan ik hem op die Eeprom erbij zetten want die staat ook op I2C. |
http://pascalbianca.blogspot.nl/ |
|
Gepost op zondag 16 Februari 2014 11:14:09 |
 |
Die PCF8574P kan ook alleen digitaal, je hebt ofwel een ad converter nodig ofwel een temperatuur sensor die direct I?C doet. |
Met vriendelijke groet, Stynus ||| www.elektronicastynus.be |
|
Gepost op zondag 16 Februari 2014 16:25:23 |
 |
Iemand enig idee hoe je die PCF8574P werkend krijg want adres en alles klopt volgens mij maar hoe kan ik die testen of die wel een signaal verstuurd?
A0&A1 staan op de ground dus zou volgens mij adres $A2 moeten hebben de sda en scl lijn staan ook correct op die van de eeprom (die werkt).
|
http://pascalbianca.blogspot.nl/ |
|
Gepost op zondag 16 Februari 2014 17:12:27 |
 |
Het testen van een PCF8574.
http://hackaday.com/2008/12/27/parts-8bit-io-expander-pcf8574/ |
|
|
Gepost op zondag 16 Februari 2014 20:42:15 |
 |
Thx @Henk, maar helaas heb ik niets aan die code , zoek iets in proton ide. |
http://pascalbianca.blogspot.nl/ |
|
Gepost op zondag 16 Februari 2014 21:09:24 |
 |
Ik heb nu de volgende code.:
Code |
Device 18F4550
Xtal 20
'Tris . 76543210 Register volgorde
;TRISB = %11011100
TRISA=%00000000
TRISB=%01011000
TRISC=%00000000
TRISD=%00000000
TRISE=%00000000
Declare All_Digital = TRUE
PORTA=0;ORTB=0
PORTC=0ORTD=0
PORTE=0
Declare LCD_DTPort = PORTD
Declare LCD_RSPin = PORTC.7
Declare LCD_ENPin = PORTE.0
Declare LCD_RWPin = PORTC.6
Declare LCD_CS1Pin = PORTE.1
Declare LCD_CS2Pin = PORTE.2
Declare LCD_Type = Graphic
Declare Internal_Font = On
Declare Font_Addr = 0
High PORTB.5 'rst pin oftwel reset pin
Declare GLCD_STROBE_DELAY = 5
Declare Optimiser_Level 3
'Set ports for I2C
;Declare SCL_Pin = PORTB.1
;Declare SDA_Pin = PORTB.0 ;Alias voor de SDA (Data) lijn
;!!!!!!!!BOVENSTAANDE SDA EN SCL DECKLARES WAT MET BUSIN WORD GEBRUIKT!!!!!!!!!!!!!!!!!!!!!!!
;!!!!!!!!IS VERVALLEN OMDAT HBusIn WORD GEBRUIKT DIE HARDWAREMATIG DE POORTEN AL AANWIJST!!!!
Declare Slow_Bus On
Dim VAR1 As Byte
;Symbol PCF8574A_ADDR =%01000001 'PCF8574 Slave Address (A0,A1,A2 to GND)
;Symbol PCF8574A_ADDR = %01110000 ;Slave Adress A0 t/m A2 aan GND
;Symbol PCF8574A_ADDR = &H71 ;Slave Adress A0 t/m A2 aan GND
Dim PCF8574A_ADDR As Byte
PCF8574A_ADDR = %01000001
start:
Cls
BStart
Print At 3,1,"PCF8574 schrijf"
BusOut PCF8574A_ADDR, [%11111111]
BStop
DelayMS 1000
BStart
Print At 3,1,"PCF8574 lees"
BusOut PCF8574A_ADDR, [%00000000]
BStop
DelayMS 1000
GoTo start
|
ik heb een ledje op 1 van de poorten gezet maar er gebeurd niks.
Ik zit alleen aan de adres van die IC te twijfelen ik kom diverse adressen tegen terwijl ze wel overal zetten dat A0,A1 en A2 op de ground zit.
[update]
Omdat ik hbus gebruik heb ik de code aangepast naar het volgende.:
Code |
HBStart
HBusout %01110000 ; slave adress
HBusout %00000000 ; alle leds aan
delayms 500
HBusout %11111111 ; alle leds uit
HBStop
|
Maar idem gebeurd niets met de led.
[Bericht gewijzigd door pascalbianca op Zondag 16 Februari 2014 21:18:49] |
http://pascalbianca.blogspot.nl/ |
|
Gepost op zondag 16 Februari 2014 22:57:28 |
 |
Ik mis de code om die PCF te initialiseren. |
Met vriendelijke groet, Stynus ||| www.elektronicastynus.be |
|
Gepost op maandag 17 Februari 2014 00:26:05 |
 |
Quote | Ik mis de code om die PCF te initialiseren. |
Klopt.
De R-W bit is vergeten, ik dacht nog, als ik een test-link geef dan lukt het @Pascal het wel, trouwens het 'testen' dat was de vraag ook.
Daar werd het meeste uitgelegd.
Eigenlijk is dit IC minder moeilijk dan MCP23008.
Wat meet je met je scoop(Kit)?
|
|
|
Gepost op maandag 17 Februari 2014 05:19:50 |
 |
Quote | Stynus schreef: Ik mis de code om die PCF te initialiseren. |
Uh dat had ik niet nodig bij die eeprom volgens mij.
Quote | Henk (NL) schreef:
De R-W bit is vergeten, ik dacht nog, als ik een test-link geef dan lukt het @Pascal het wel, trouwens het 'testen' dat was de vraag ook.
Daar werd het meeste uitgelegd.
Eigenlijk is dit IC minder moeilijk dan MCP23008.
Wat meet je met je scoop(Kit)?
|
Wat wil je dat ik meet?
Maar hulp, weet al niet welke Slave adres hij daadwerkelijk heeft aangezien er diverse worden gebruikt op internet terwijl de ground op A0,A1 en A2 staat aangesloten.
Er word bij jou link @Henk wel veel uitgelegd maar das niet Proton IDE code die gebruikt word.
Ik weet echt niet welke kant ik moet uitgaan met die IC, dus
Dit is de code die ik momenteel heb.:
Code |
Device 18F4550
Xtal 20
'Tris . 76543210 Register volgorde
;TRISB = %11011100
TRISA=%00000000
TRISB=%01011000
TRISC=%00000000
TRISD=%00000000
TRISE=%00000000
Declare All_Digital = TRUE
PORTA=0;ORTB=0
PORTC=0ORTD=0
PORTE=0
Declare LCD_DTPort = PORTD
Declare LCD_RSPin = PORTC.7
Declare LCD_ENPin = PORTE.0
Declare LCD_RWPin = PORTC.6
Declare LCD_CS1Pin = PORTE.1
Declare LCD_CS2Pin = PORTE.2
Declare LCD_Type = Graphic
Declare Internal_Font = On
Declare Font_Addr = 0
High PORTB.5 'rst pin oftwel reset pin
Declare GLCD_STROBE_DELAY = 5
Declare Optimiser_Level 3
'Set ports for I2C
;Declare SCL_Pin = PORTB.1
;Declare SDA_Pin = PORTB.0 ;Alias voor de SDA (Data) lijn
;!!!!!!!!BOVENSTAANDE SDA EN SCL DECKLARES WAT MET BUSIN WORD GEBRUIKT!!!!!!!!!!!!!!!!!!!!!!!
;!!!!!!!!IS VERVALLEN OMDAT HBusIn WORD GEBRUIKT DIE HARDWAREMATIG DE POORTEN AL AANWIJST!!!!
Declare Slow_Bus On
Dim VAR1 As Byte
;Symbol PCF8574A_ADDR =%01000001 'PCF8574 Slave Address (A0,A1,A2 to GND)
;Symbol PCF8574A_ADDR = %01110000 ;Slave Adress A0 t/m A2 aan GND
;Symbol PCF8574A_ADDR = &H71 ;Slave Adress A0 t/m A2 aan GND
;Dim PCF8574A_ADDR As Byte
;PCF8574A_ADDR = %00111000
Symbol PCF8574A_ADDR = %01110001 ;56
start:
Cls
;BStart
;Print At 3,1,"PCF8574 schrijf"
;HBusOut PCF8574A_ADDR, [%11111111]
;BStop
;DelayMS 1000
;BStart
;Print At 3,1,"PCF8574 lees"
;HBusOut PCF8574A_ADDR, [%00000000]
;BStop
;DelayMS 1000
HBStart
HBusOut %01110001 ;%01110000 ; slave adress
HBusOut %00000000 ; alle leds aan
DelayMS 500
HBusOut %11111111 ; alle leds uit
HBStop
GoTo start
|
[Bericht gewijzigd door pascalbianca op Maandag 17 Februari 2014 08:25:32] |
http://pascalbianca.blogspot.nl/ |
|
Gepost op maandag 17 Februari 2014 16:06:17 |
 |
Met de scoop erop zie ik dit als resultaat , dus iets gaat over de lijn heen.
|
http://pascalbianca.blogspot.nl/ |
|
2 » |
|
|