04-10-2018, 03:52 PM
Postavio sam SPI: (PORTB.3 CS, PORTB.4 SO, PORTB.5 SCK)
; DDRB - Segment Multiplexing Output (0, 1, 2) | MAX6675 CS(MOSI), SCK(SCK) Output, SO(MISO) Input (3 5 4)
ldi R16, (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<5)
out DDRB, R16
; Spi Init - ReadTemperature
ldi R16, (1<<SPE)|(1<<MSTR)|(1<<SPR0) ; Spi Master, Prescaler fck/16
out SPCR, R16
I glavni program koji se vrti u loop i cita temperaturu:
Loop:
; Read MAX6675 ThermoCouple Temperature
cbi PORTB,3 ; CS Low
out SPDR, R20 ; Start Reading Data
Read_Temp:
in R20, SPSR ; Read Data
sbrs R20, SPIF
rjmp Read_Temp
rjmp Loop
Dakle prema datasheetu:
https://datasheets.maximintegrated.com/e...AX6675.pdf
kako da ocitam iz SO outputa (SPIF registar mi ima tu vrijednost) tih 12-bita temperature i thermocouple input vrijednost? Citao sam da trebam bit shifting left raditi pa mi nije to bas jasno....
; DDRB - Segment Multiplexing Output (0, 1, 2) | MAX6675 CS(MOSI), SCK(SCK) Output, SO(MISO) Input (3 5 4)
ldi R16, (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<5)
out DDRB, R16
; Spi Init - ReadTemperature
ldi R16, (1<<SPE)|(1<<MSTR)|(1<<SPR0) ; Spi Master, Prescaler fck/16
out SPCR, R16
I glavni program koji se vrti u loop i cita temperaturu:
Loop:
; Read MAX6675 ThermoCouple Temperature
cbi PORTB,3 ; CS Low
out SPDR, R20 ; Start Reading Data
Read_Temp:
in R20, SPSR ; Read Data
sbrs R20, SPIF
rjmp Read_Temp
rjmp Loop
Dakle prema datasheetu:
https://datasheets.maximintegrated.com/e...AX6675.pdf
kako da ocitam iz SO outputa (SPIF registar mi ima tu vrijednost) tih 12-bita temperature i thermocouple input vrijednost? Citao sam da trebam bit shifting left raditi pa mi nije to bas jasno....