PDA

View Full Version : Some pins dont work



The Master
- 2nd December 2007, 11:39
Hi. Im just running a quick test on some code.



high porta.1
high porta.2
high porta.0
high porta.3
high portb.0
high portb.5
high portb.3
high portb.4


I keep getting weird flashing with it unless i comment out porta.2, porta.0 and porta.3 then the other outputs work fine. TrisA is set to %00110000. Im lookng at the datasheet (http://ww1.microchip.com/downloads/en/DeviceDoc/40300C.pdf) but porta.0 and porta.1 appear to be the exact same type of pin yet 1 works and 1 doesnt. Am i missing something?

BobK
- 2nd December 2007, 12:30
Hi Master,

Well, without going back and looking at your other posts, you don't say what chip you are using. If you had a datasheet on the chip you were using you could look and see if it had analog pins on portA and if any of the pins were setup by default to work as a comparator. These features need to be disabled which will then make the pins digital. All of this has been covered soooooooooooo many times on this forum. You should stop and look at all of the stuff that has posted. You would be making a wise investment in your time!

When looking at the data sheet look for the registers ADCON and CMCON and there might be a few others which have a different name depending on the PIC you are using. This will tell you how to disable them as well as how to configure them for different operations.

This site is a veritable book on PICs and how to use them as well as troubleshooting problems with PICs and devices attached to them.

BobK

The Master
- 2nd December 2007, 12:56
I see. I posted a link to the datasheet in my previous post. The pins im having trouble with are all analogue pins but the one that works is also an analogue pin so i dont see why one works and one doesnt.

I will have a look at configuring them though and hopefully that will help

The Master
- 2nd December 2007, 13:09
Im not exactly the best person for reading datasheets but from what i can see in the porta table aparently the 4 pins with analogue capability are *not* set as analogue by default.

It actually seems like the problem im having is because it takes longer to turn those 3 outputs on than it does for any of the others. Is that possible?

The Master
- 2nd December 2007, 13:23
Ive found out whats happening. Its weird though and i dont know how to fix it.



high porta.1 'Turns RA1 on
high porta.0 'Turns RA0 on *AND* RA1 back off again!

mackrackit
- 2nd December 2007, 13:41
You should give all info in each thread. Saves the people trying to help time if they do not have to go back and search your old post. I for one will not take the time. A minute or so of your time telling the PIC and posting the whole code will get answers, or at least better answers:)

Look at these:
http://www.picbasic.co.uk/forum/showthread.php?t=562
http://www.picbasic.co.uk/forum/showthread.php?t=561

Basically if you want the pin to be digital, tell it. If the pin is to be analog, tell it. Just like setting the TRIS.

The Master
- 2nd December 2007, 14:05
Sorry. I did post a link to the datasheet. The exact chip is a PIC16F627. The datasheet doesnt mention ADCON anywhere so i assume it doesnt have it. Ive tried setting CMCON. I took a look again at the datasheet and tried a few values. Ive now found one that seems to work properly. From what i can see, all of porta is working as expected now.

While testing ALL pins ive noticed another problem. RB0 wont turn off. Im sure this is because its a special pin but i cant see what to do with it.

In that first link RA4 isnt a problem because its an input anyway.

Ive attached the full code so far as requested. Everything seems to work except RB0

The Master
- 2nd December 2007, 14:10
HAHA. I found the problem. When i set all the pins low i put "portb.2" instead of "portb.0".

Everythings working now :D The circuit can control mains bulbs and/or LEDs with brightness control.

Im sure your all thinking "THANK GOD. Finally". I would like to thank everyone who has helped me with this. It looked really simple when i first started but if it wasnt for the people on this forum i would be hitting my head on the table right now.

Ive just got a few bits of code to add and cleanup then it should be done but im sure i can handle those myself

mackrackit
- 2nd December 2007, 14:58
When i set all the pins low i put "portb.2" instead of "portb.0".
I hate it when that happens:D
Good job:)

nomad
- 2nd December 2007, 21:00
lol i have when that happens too!