PIC-Basic hjärnsläpp.

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
tusse
Inlägg: 1364
Blev medlem: 19 augusti 2003, 21:56:17
Ort: Järfälla

PIC-Basic hjärnsläpp.

Inlägg 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.
Kaggen
Inlägg: 432
Blev medlem: 29 januari 2005, 03:06:02

Inlägg 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
Senast redigerad av Kaggen 25 september 2005, 17:28:14, redigerad totalt 2 gånger.
Användarvisningsbild
lgrfbs
Inlägg: 7310
Blev medlem: 28 januari 2005, 15:48:53
Ort: X-län
Kontakt:

Inlägg av lgrfbs »

Gissar att du kanse har fel variabeltyp någonstans, har inte kört
denna kompilatorn.
Skulle du kunna visa relivant källkod ?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg 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 !
Användarvisningsbild
tusse
Inlägg: 1364
Blev medlem: 19 augusti 2003, 21:56:17
Ort: Järfälla

Inlägg 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.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg 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... :-)
Användarvisningsbild
tusse
Inlägg: 1364
Blev medlem: 19 augusti 2003, 21:56:17
Ort: Järfälla

Inlägg 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.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg 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... :-)
Skriv svar