Martijn Berntsen
pe4mb
ik heb voor de PIC16F84A de volgende code geschreven in C:
#include <pic1684.h>
unsigned char scan()
{
RB0=1;
RB1=0;
RB2=0;
RB3=0;
if(RB4) return 1;
if(RB5) return 2;
if(RB6) return 3;
RB0=0;
RB1=1;
RB2=0;
RB3=0;
if(RB4) return 4;
if(RB5) return 5;
if(RB6) return 6;
RB0=0;
RB1=0;
RB2=1;
RB3=0;
if(RB4) return 7;
if(RB5) return 8;
if(RB6) return 9;
RB0=0;
RB1=0;
RB2=0;
RB3=1;
if(RB4) return 10;
if(RB5) return 0;
if(RB6) return 11;
return 12;
}
void piep ()
{
unsigned int i;
RA1=1;
for(i=0;i<10000;i++)
{
}
RA1=0;
for(i=0;i<10000;i++)
{
}
}
void main ()
{
unsigned char n,oldn;
TRISA0=0;
TRISA1=0;
TRISB0=0;
TRISB1=0;
TRISB2=0;
TRISB3=0;
TRISB4=1;
TRISB5=1;
TRISB6=1;
while(1)
{
oldn=n;
n=scan();
if(n!=12)
{
RA0=1;
}
else
{
RA1=0;
}
}
}
op port B is een numeriek matrix (3x4) toetsenbordje aangesloten. het is de bedoeling dat als je op een toets drukt, A0 1 wordt en als je op geen enkele toets drukt moet A0 0 worden. het probleem is dat A0 constant 1 is? iemand een idee hoe dit komt?
zelf dacht ik dat de functie scan mischien niets aflevert, kan dit het zijn?
[Bericht gewijzigd door Martijn Berntsen op ]
Bastiaan
Bachelor of Engineering -- Microcontrollers AVR, PIC (asm, C), PC applicaties (C, C++), Webpages (HTML, CSS, PHP, SQL), Rail-infra engineer
Ik snap niet waarom jij een char gebruikt voor die n. Waarom niet gewoon een int?
Volgensmij is dat ook het probleem.
[Bericht gewijzigd door Bastiaan op ]
Martijn Berntsen
pe4mb
ik dacht, een char gebruikt maar 8 bits en een pic heeft al niet zo veel ram geheugen. maar ik zal het met int proberen.
Benm
http://www.webchemistry.nl - Internet Ontwikkeling en Web Design
Bastiaan
Bachelor of Engineering -- Microcontrollers AVR, PIC (asm, C), PC applicaties (C, C++), Webpages (HTML, CSS, PHP, SQL), Rail-infra engineer
Op di 23-07-2002 19:45:29 schreef Martijn Berntsen:
nee
Werkt het niet? of is het een antwoord op de tinyint?
Martijn Berntsen
pe4mb
dat was het antwoord op tinyint.
maar ik heb het probleem gevonden, er moesten wat pulldown weerstandjes bij het toetsenbordje.