| ??? 03/20/05 22:37 Modified: 03/20/05 22:40 Read: times |
#90059 - Damned, damned, damned... Responding to: ???'s previous message |
All,
After I shot myself 5 times in the head (and one time in the foot), I still found the energy to write a last message regarding this subject... Erik, you were (once again) right from the beginning! You must be one of the 'white ravens' out there (at least, in the 8051 area...). ;-) Let me tell what the problem was: As told and said and shown in the code, I wanted to use pin0 as input and all the rest as output. I used pin6 to control a LED. Now what happened was: When I pressed the button down, the level of pin0 was '0'. So, when I read the byte, I got the value 0x40 back. Due to that, I wanted to write a '0' to pin6 too, to activate the LED. So, I had to write a complete byte back to the IO expander, with value 0x00 in this case. BUT!!! Since pin0 was an input, I was not allowed to write '0' to pin0. I was 200% sure that I prevented the pins defined as input from being written with '0', because I was using a mask that defined the pins defined as inputs. However, I was storing the mask inside a variable in my 8574 structure that was at last not holding the correct mask anymore. So, when I read 0x40 because the key was pressed ('0' at input of pin0), I stored 0x40 in the buffer => gone mask!!!. Solution: added an extra field to the struct that only saveguards a mask defining the input pins of that device. Now, when I'm finished with the shifting, the bitwise "OR"-ing and the inversion, I bitwise "OR" again the result with the mask (this one never changes anymore). Because of that, the bits representing the inputs are set to '1' again. Sorry guys for:
...and sorry to my cat Spooky for chasing her off of my keyboard this morning... Here's a picture of her:
Now I can continue to drop dead... RIP... Sih! Best rgds, --Geert |
| Topic | Author | Date |
| Problems with PCF8574 input | 01/01/70 00:00 | |
| best guess | 01/01/70 00:00 | |
| To Erik | 01/01/70 00:00 | |
| So.... | 01/01/70 00:00 | |
| To Jez Smith | 01/01/70 00:00 | |
| show the code | 01/01/70 00:00 | |
| To Oleg | 01/01/70 00:00 | |
| How to post code | 01/01/70 00:00 | |
| To Andy | 01/01/70 00:00 | |
| hmmmmmm | 01/01/70 00:00 | |
| To Jez | 01/01/70 00:00 | |
| RTFDS - using 8574 IO as inputs | 01/01/70 00:00 | |
| To J. Guy | 01/01/70 00:00 | |
| When is pin written ? | 01/01/70 00:00 | |
| My datasheet tells something different.. | 01/01/70 00:00 | |
| To Kai | 01/01/70 00:00 | |
| cutting through the fog | 01/01/70 00:00 | |
| To J. Guy | 01/01/70 00:00 | |
| Where is the difference between... | 01/01/70 00:00 | |
| To Kai | 01/01/70 00:00 | |
| Re:Problems with PCF8574 input | 01/01/70 00:00 | |
| Test it without having any communication | 01/01/70 00:00 | |
| To Kai | 01/01/70 00:00 | |
| Maybe good guess! | 01/01/70 00:00 | |
| To Medhi | 01/01/70 00:00 | |
| Switch terminology | 01/01/70 00:00 | |
| Thanks! | 01/01/70 00:00 | |
| Coonfoosed yeeet | 01/01/70 00:00 | |
| Contact arrangement - nothing else | 01/01/70 00:00 | |
| PCF8574 | 01/01/70 00:00 | |
| To Ben | 01/01/70 00:00 | |
| I have used the bugger often | 01/01/70 00:00 | |
| To Erik | 01/01/70 00:00 | |
| helloooooooooo !! | 01/01/70 00:00 | |
| To Erik | 01/01/70 00:00 | |
| Wager... | 01/01/70 00:00 | |
| To Grant | 01/01/70 00:00 | |
| The code... | 01/01/70 00:00 | |
| Thats told 'em :-) | 01/01/70 00:00 | |
| Frightend... ;-) | 01/01/70 00:00 | |
| Formatting | 01/01/70 00:00 | |
| Format flavours. | 01/01/70 00:00 | |
| Insanity | 01/01/70 00:00 | |
| Malaysian Grand Prix... | 01/01/70 00:00 | |
| Some update!!! | 01/01/70 00:00 | |
| Let me comment.... | 01/01/70 00:00 | |
| "fancy" code | 01/01/70 00:00 | |
| I'll Suggest... | 01/01/70 00:00 | |
| Pointers and structures | 01/01/70 00:00 | |
| C assumes int | 01/01/70 00:00 | |
| Followed the advice of Michael Karas... | 01/01/70 00:00 | |
| Why not assembly using? | 01/01/70 00:00 | |
| Assembler code | 01/01/70 00:00 | |
| Well... | 01/01/70 00:00 | |
| int | 01/01/70 00:00 | |
| Check Maxint ? | 01/01/70 00:00 | |
| Maxint | 01/01/70 00:00 | |
| Murdered quote | 01/01/70 00:00 | |
| I2C code | 01/01/70 00:00 | |
| Keil webpage | 01/01/70 00:00 | |
| i2c simulator | 01/01/70 00:00 | |
| Me to blame? | 01/01/70 00:00 | |
| not blaming you! | 01/01/70 00:00 | |
| Michael B. made a very usefull tool! | 01/01/70 00:00 | |
| hello | 01/01/70 00:00 | |
| Not aware? | 01/01/70 00:00 | |
| thank u | 01/01/70 00:00 | |
Name confusion... | 01/01/70 00:00 | |
| hi | 01/01/70 00:00 | |
| Damned, damned, damned... | 01/01/70 00:00 | |
| Ha, ha, ha, ha, ha .... | 01/01/70 00:00 | |
| Calico | 01/01/70 00:00 | |
| Pls. do so! | 01/01/70 00:00 | |
| Keyboard Calico | 01/01/70 00:00 | |
| Christmas | 01/01/70 00:00 | |
| Maybe it was .... | 01/01/70 00:00 | |
| Christmas Presents | 01/01/70 00:00 |



