Sida 1 av 2
Behöver hjälp med pic 16F628
Postat: 14 november 2007, 08:43:12
av Haxxkatt
Kod: Markera allt
void main()
{
Delay_ms(1000);
TRISA.F1=1;
PORTA.F1=0;
PORTB=0;
TRISB=0;
while(1)
Delay_ms(1000);
{
if( !PORTA.F1)
{
PORTB=PORTB|0B00000010;
}
Delay_ms(1000);
if( PORTA.F1)
{
PORTB=PORTB&0B00000100;
}
Delay_ms(1000);
/*
Delay_ms(1000);
PORTB.F3=1;
PORTB.F2=0;
Delay_ms(1000);
PORTB.F3=0;
PORTB.F2=1;
*/
}
}
Vi håller på att programmera en bil, och vill att när port A1 aktiveras så
ska bilen börja göra något annat...
Men det funkar inte alls.. Nån som har nåt förslag?
Lade till code-taggar / speakman
Postat: 14 november 2007, 09:04:19
av Icecap
Testa att slå av de analoga funktioner på Port A... Det brukar göra underverk.
Postat: 14 november 2007, 09:32:47
av speakman
Varsågod, en lite mer lättläst variant utan bortkommenterad kod:
Kod: Markera allt
void main()
{
Delay_ms(1000);
TRISA.F1 = 1;
PORTA.F1 = 0;
PORTB = 0;
TRISB = 0;
while(1) {
Delay_ms(1000);
if(!PORTA.F1)
PORTB = PORTB | 0B00000010;
Delay_ms(1000);
if(PORTA.F1)
PORTB = PORTB & 0B00000100;
Delay_ms(1000);
}
}
EDIT: Ser att du lagt "Delay_ms" på fel sida "klammern {". Prova min kod och se om den funkar bättre.
Postat: 14 november 2007, 09:47:35
av net4all
Får man fråga vilken typ av C-språken du/ni skriver i?
EDIT:
TRISA.F1=1;
PORTA.F1=0;
PORTB=0;
TRISB=0;
Hmm, först sätter du TRISA.F1=1; PORTA.1 till ingång, sedan PORTA.F1=0; försöker du sätta pinnen som logisk 0

Postat: 14 november 2007, 21:06:29
av Icecap
Och vad är problemet med det?
Att det inte fungerar är en sak men det finns väl inget fel med det heller?
Och C ska vara C och dessa kommandon är helt standard ANSI-C.
Postat: 14 november 2007, 21:10:39
av net4all
Jag tänkte: Kan man styra logik nivån på en ingång?
Postat: 14 november 2007, 21:12:22
av sodjan
> Men det funkar inte alls..
Jag är inte helt med, vad är det som inte fungerar ?
Postat: 14 november 2007, 21:13:11
av sodjan
> Kan man styra logik nivån på en ingång?
Ja visst, varför inte ?
Det är bara att lägga den hög ellre låg.
Postat: 14 november 2007, 21:14:16
av bengt-re
Märklig diskution.... Vad VILL du göra?
Postat: 14 november 2007, 21:15:10
av net4all
Ja.... ok.... Vad är då vitsen med Input/Output om man ändå kan styra pinnen när den är satt som ingång?

Postat: 14 november 2007, 21:16:45
av Icecap
Jorå, nog en tankevurpa men kommandot i sig gör ingen skada, fakta är att det knappast gör något alls som har funktion.
Postat: 14 november 2007, 21:19:10
av net4all
Ok, så om man försöker styra en ingång så händer inget bara?
Hur går det för trådskaparen?
Postat: 14 november 2007, 21:19:34
av sodjan
> Jag tänkte: Kan man styra logik nivån på en ingång?
Menar du styra *innefrån* samma PIC ???
Självklart inte !!
Jag antog att du menade utifrån...
Postat: 14 november 2007, 21:22:23
av bengt-re
Det finns bra beskrivet i databladet - det är lite roligt gjort och KAN ge märkliga effekter ibland med in och ut buffertarna. SODJAN kan förklara det där bättre om du inte orkar läsa eller förstår databladet
Postat: 14 november 2007, 21:22:48
av net4all
Jag menade innifrån.
Så vad händer då? Haxxkatt försöker ju sätta PORTA.F1=0;
EDIT: Får läsa mer sen i databladet, ska ju inte ta tråden för det här...
