How about something simple, like:
HTH,Code:PORTA.0 = Digit.0 PORTA.1 = Digit.1 PORTA.2 = Digit.2 PORTA.3 = Digit.3
SteveB
How about something simple, like:
HTH,Code:PORTA.0 = Digit.0 PORTA.1 = Digit.1 PORTA.2 = Digit.2 PORTA.3 = Digit.3
SteveB
I just made this piece of code as test.
It works except the PORTA.6 will change it's status from 1 to 0 when the firt loop will be executed.Code:MYPORT var PORTA Loop var BYTE PORTA.0 = MYport.0 PORTA.1 = MYport.1 PORTA.2 = MYport.2 PORTA.3 = MYport.3 PORTA.6 = 1 'Test to check port's state change in simulator... Start: for LOOP = 0 to 3 myport.0[Loop] = 1 'High myport.0[loop] = 0 'Low next goto start END
Last edited by flotulopex; - 25th February 2007 at 20:42.
Roger
I think you've got the variable declarations backwards.
Try myport.0 = porta.0, etc. instead of the way you have it.
this won't work indeed... and you make it too complicated for what it need to be.
MyPORT.0=PORTA.0 will work only once, If you want to alias a variable bit to a PORT bit... it's an all different story..Code:Start: for LOOP = 0 to 3 PORTA.0[Loop] = 1 'High PAUSE 500 PORTA.0[loop] = 0 'Low next goto start END
Steve
It's not a bug, it's a random feature.
There's no problem, only learning opportunities.
I've attached two pictures about what I can see.
The first picture "Before Loop Start" shows that my PORTA.0 to 3 are set to "1". This is because I need them to be at this state before the main loop starts (driving CA Leds).
I did the same for PORTA.6 (=1) just for testing purpose. PORTA.6 will be used for something else in my program if I can handle the actual problem.
When I start the execution of the program, PORTA.6 goes to "0" witch is unwanted here.
Mister_E you're right, using DCD will modify all ports.... Was not a good idea on my side. Thank you for making me aware.
Roger
I should have see it first... You must set the TRIS register, unless those pin are set as input.
Code:MYPORT var PORTB Loop var BYTE TRISB=0 PORTB.6 = 1 'Test to check port's state change in simulator... Start: for LOOP = 0 to 3 myport.0[Loop] = 1 'High PAUSE 500 myport.0[loop] = 0 'Low next goto start END
Steve
It's not a bug, it's a random feature.
There's no problem, only learning opportunities.
Never mind.. misread the original code...
Steve
It's not a bug, it's a random feature.
There's no problem, only learning opportunities.
You may be right!
I just noticed that, using an additional microcontroler view in the simulator, the port doesn't change.
So I'm going to make it in "real".
Another thing; I have declared PORTA.6 as an Input (TRISA = %11110000). When I change this to an Output (TRISA = %10110000), the port will keep it's status as it should be.
Unfortunalety, I will need it as an Input.
I'll go back to my breadboard....
Roger
Bookmarks