ik heb een probleempje bij et inlezen van 3 drukknoppen
ik gebruik de PIC 16F877A en heb 3 drukknoppen op poortB namelijk op pin 3,4 en 5 op pin 7 ziten mijn PGD en PGC op pin 0,1 en 2 zit niets, is ook aan niets aangesloten.
deze drukknoppen liggen tussen de Vcc en de pin met een pull down weerstand naar massa.
als ik meet krijgt ik ook mooi '1' (4,98v) en '0' (36mv) op de pin.
nu screef ik dit programma maar er gebeurt echter niets.
#include <system.h>
void main()
{
trisb=0xFF;
trisd=0x00;
while(1)
{
portb.4 = portd;
}
}
ik heb verschillende kleine programmatjes geprobeert maar er gebeurde niets.
anders heb ik geen problemen. het inlezen van analoge waardes het uitlezen m.b.v leds, motor IC aansturen etc
wat doe ik mis.
mvg
Th
Roches
Domoticz en ESP8266, goede combo!!!
Wat zit er aan PORTD.0 dan?
Je schrijft een 0 of een 1 weg naar PORTD.0
...
StefanH (hieronder) heeft gelijk, het was me nog niet eens opgevallen dat je het verkeerd om had staan.
Stom he hoe een menselijk brein werkt, je verwacht dat hij portb.4 in portd gaat stoppen en zo lees je het dan ook.... tot je het zelf programmeerd, dan valt het op.
[Bericht gewijzigd door Roches op (63%)]
Probeer eens:
portd = portb.4Want in jouw code staat namelijk het omgekeerde. Je wil een byte in een bit proppen en dat werkt niet. Ook zeg je hiermee dat je de uitgang wil inlezen en op de ingang wil projecteren. Je zegt namelijk dat portb.4 de waarde van portd moet krijgen.
Als de bovenstaande code niet werkt, wat ik verwacht, probeer het volgende:
if(portb.4 == 1)
{
portd = 255; //of de waarde van de gewenste led (1,2,4,8,16,32 etc..)
}
else
{
portd = 0;
}Mvg Stefan