Denne side bruger cookies
Dette forum bruger cookies. Hvis du er registreret, bruges de til at huske hvem du er logget ind som. Hvis ikke, gemmer vi dit sidste besøgstidspunkt. Besøgstidspunktet bruges bl.a. til at holde øje med, hvilke tråde du allerede har læst. Cookies er små tekstdokumenter, som bliver gemt i din browser og udgør ingen sikkerhedsrisiko. Tryk "Mere Information" nedenfor, for en liste over de cookies vi sætter. Du har mulighed for at fravælge cookies ved at klikke på knappen "Blokér Cookies" i bunden af denne boks.

En ikke-personhenførbar cookie vil blive gemt i din browser, uanset dit valg (Medmindre du ikke foretager et). Således undgår du at blive spurgt igen. Du kan til enhver tid ændre dit valg via linket i bunden af siden.

Tråd bedømmelse:
  • 0 Stemmer - 0 Gennemsnit
  • 1
  • 2
  • 3
  • 4
  • 5
SpiDev modul og bitshifting.
18-12-2019, 10:52
#1
SpiDev modul og bitshifting.
Hej med jer.

Jeg sidder med en skoleopgave hvor jeg skal lave en temperaturmåler via en spi controller fra min raspberry pi.


def readADCroom(ADC, channel, vref)

svar = ADC.xfer2([0b00000001, 0b11000000,0b00000000)
return ( ( svar[1] & 3 ) <<  8 )+ svar[2]

Problemet er at jeg simpelthen ikke forstår hvad der sker i linje 3 hvor return sker - her håber jeg at der er en venlig sjæl der kan foreklare hvad der sker mht bitshifting.

link til koden: https://pastebin.com/apLtUMFf
Find alle beskeder fra denne bruger
Citer denne besked i et svar
19-12-2019, 21:20
#2
RE: SpiDev modul og bitshifting.
Den kombinerer 10-bit resultatet (går ud fra controlleren returnere 10-bit resultat) til en integer.

svar[1] == MSB (vi leger den er 0xFF)
svar[2] == LSB (vi leger den er 0xCC)

Vi er kun interesseret i to bits fra MSB, da resultatet kun er 10-bits, så det er derfor vi tager svar[1] & 3 (0b11)

0xFF & 3 = 0x03

Den anden del shifter resultatet (2 bits fra svar[1]) til venstre, så fx:
0x03 << 8 == 0x0300

Derefter adder den bare LSB:

0x0100 + 0xCC = 0x01CC
Find alle beskeder fra denne bruger
Citer denne besked i et svar
17-01-2020, 10:52
#3
RE: SpiDev modul og bitshifting.
Tusind tak for svaret
Find alle beskeder fra denne bruger
Citer denne besked i et svar
« Ældre | Nyere »




User(s) browsing this thread: 1 Gæst(er)