one by one,
i'm doing some test. Really i have my own way to catch up and understand things.
first of all for lata we can only write up to 255 as it is 8 bit.
I'm still figuring out step by step the diagram.
one by one,
i'm doing some test. Really i have my own way to catch up and understand things.
first of all for lata we can only write up to 255 as it is 8 bit.
I'm still figuring out step by step the diagram.
this is really helpful for me as well.
https://download.mikroe.com/document...c/help/rmw.htm
ok i think i have some how understood the concept.
my question is.
How could we assign a value that can be stored in memory and represent the state of the pin itself. (0 or 1)
but at the same time to not read the actual pin, but the value that is stored in memory.
simple, to read the value assigned to pins designated as output read latx its value is always what you last set it toHow could we assign a value that can be stored in memory and represent the state of the pin itself. (0 or 1)
but at the same time to not read the actual pin, but the value that is stored in memory.
the latx value of pins set as input is meaningless in regards to actual pin logic level
to read the actual pin logic levels at a point in time read portx , its always the actual pin value at read time
pin and latx values are not necessarily equal at a point in time, pins set as output are subject to real world physical constraints dictated by the load impedance they are driving
Warning I'm not a teacher
i did a small test but it is not what i need.
I would like now once again to clear the following.
Henrik said
As this statement, how could we read the status of the actual pin without using the port as input. Could you please explain to me the method?"One more thing: You're clearly reading PORTB which must mean you're using those five low bits as inputs, yet, at the top of the program you have TRISB = %00000000 which makes all of PORTB outputs..."
Code:ANSELA = 0 DEFINE OSC 64 OSCCON = $70 OSCTUNE.6 = 1 TRISA = %11111100 led1 var porta.0 ; alias led1 to porta.0 led2 var porta.1 ; alias led2 to porta.1 x var bit ; tried to use X var as a bit in order to hold the value of the actual status of the pin. lata = 0 ; based on the schematic, we write to LATA and clear the ports x = 0 ; we write 0 to var X loopy: lata.0 = 1 ; we write 1 to lata.0 gosub holdmem ; gosub to holdmem pause 500 read 5,led2 ; write the value of the location 5 to led2 pause 500 lata.0 = x ; write the value of X to lata.0 lata.1 = x ; write the value of X to lala.1 pause 1000 goto loopy holdmem: write 5,led1 ; read the state of the porta.0 and place it to location 5 in memory. return
simply put you cannot , reading portx is the only direct way to read the actual status of the pins.As this statement, how could we read the status of the actual pin without using the port as input. Could you please explain to me the method?
what henrik means is why would you read a port to read the value of outputs you have already set. the outputs will be at the level you set them to
(after a suitable interval to allow pin to settle) {providing load is acceptable}.
what are trying to do ?
Warning I'm not a teacher
do you mean something like this
no need to wear out the eeprom
Code:ANSELA = 0 DEFINE OSC 64 OSCCON = $70 OSCTUNE.6 = 1 TRISA = %11111100 led1 var porta.0 ; alias led1 to porta.0 led2 var porta.1 ; alias led2 to porta.1 x var bit ; tried to use X var as a bit in order to hold the value of the actual status of the pin. x = 0 ; we write 0 to var X loopy: lata.0 = 1 ; we write 1 to lata.0 gosub holdmem ; gosub to holdmem pause 500 led2 = x ; write the value of x to led2 pause 500 led1=0 @ nop led2=0 pause 1000 goto loopy holdmem: x = led1 ; read the state of the porta.0 and place it in x 'x = lata.0 ;or read the state of the lata.0 and place it in x return goto loopy
Warning I'm not a teacher
The program for the lockcode, at the moment works fine. As mentioned in my first post im not a programmer, i had to find a way to make it work.
So the best suitable solution for me is to light up some LEDs and then read the status of the ports for confirmation.
That's why i made those pins as output and then read the status to confirm if they are 0 or 1.
Bookmarks