Sida 1 av 1

PIC-Basic hjärnsläpp.

Postat: 25 september 2005, 14:19:55
av tusse
Pic-basic problem, ska programmera en pic-16F628 att läsa en tolvbitars buss sända det till en annan pic, ska omvandla det till ett decimalt tal och visa det på en lcd.
Läsning och överföring till pic två fungerar men jag kan inte få ett värde över 128 decimalt, dom över blir bara nollor.

Postat: 25 september 2005, 17:18:07
av Kaggen
Det låter som du läser enbart ett 8-bitars värde. Varje port på PIC:en kan bara leverera 8-bitar. iomed att du skall läsa 12-bitar så antar jag att du läser de s.k. mest signifikanta bitarna från en port och de minst signifikanta bitarna från en annan.

För att sedan slåihop dessa måste du maska ut de mest signifikanta bitarna i den "höga" byten (ifall du har "skräp" på de bitar du ej använder) och rotera upp dem 8 ggr för att sedan lägga ihop dem med den "låga" byten till en 16-bitars variabel.

Vet inte hur PIC-Basic funkar men i C skulle du gjort något liknande (OBS! Psuedo C kod):

Kod: Markera allt

unsigned char LowByte; /* Osignerad 8-bitars variabel */
unsigned char HiByte; /* Osignerad 8-bitars variabel */
int Result; /* Integer (minst 16-bitar) resultat */

LowByte = PORTA /* Hämta alla låga 8 bitar från port a */
HiByte = PORTB /* Hämta alla höga bitar från port b*/
HiByte = HiByte & 15; /* Maska ut de relevanta 4 lägsta bitarna */
Result = (HiByte << 8) + LowByte; /* Rotera upp HiByte och addera LowByte */

printf("Värdet är %d", Result);
Kan ju vara nåt annat fel också.

mvh Mats

Postat: 25 september 2005, 17:18:18
av lgrfbs
Gissar att du kanse har fel variabeltyp någonstans, har inte kört
denna kompilatorn.
Skulle du kunna visa relivant källkod ?

Postat: 25 september 2005, 22:38:21
av sodjan
> "en tolvbitars buss"

Vadå "tolvbitars buss" ???
Förtydliga !

> "Läsning och överföring till pic två fungerar men jag kan inte få ett värde över 128 decimalt, dom över blir bara nollor."

Förtydliga !
*Var* är det du inte kan få ett värde över 128 decimalt ??
I vilken operation ?
Och vadå "dom över blir bara nollor." ? Visa exempel !

Postat: 26 september 2005, 08:48:49
av tusse
Tolvbitars buss är inget konstigt, tolv trådar med en bit i varje.
Ny löste det sig för det var något fel på kretsen, när jag bytte den fungerade det perfekt.
Tack för alla tips.

Postat: 26 september 2005, 11:49:48
av sodjan
He he, *det* är väll en av de saker man skall testa (om man kan) *innan* man ställer frågor här... :-)

Postat: 26 september 2005, 12:16:57
av tusse
Nu växer det inte pickretsar på träd utan man får oftast köpa dom och ett så konstigt fel som det blev är nog inte självfallet att springa och köpa en ny krets.
Det var faktist dom som gav mig vissa tips som fick mig till att ersätta kretsen.

Hoppas sodjan vet vad en tolvbitas buss är nu.

Postat: 26 september 2005, 12:27:11
av sodjan
Helt OK !
Det framgick inte att du var i väg och köpte en ny... :-) Sorry.

12-bitarsbuss ? Nja, jag vet inte vad *du* menar med det, men det spelar väll ingen roll nu... :-)