Ronovar,
u kodu koji sam postavio imao sam nekoliko gresaka, pogotovo oko upisa u definisane memorijske lokacije i citanja sa njih. Ja sam radio prema PIC MCU-ovima, a nisam obracao paznju na AVR arhitekturu.
Evo ispravke programa:
u kodu koji sam postavio imao sam nekoliko gresaka, pogotovo oko upisa u definisane memorijske lokacije i citanja sa njih. Ja sam radio prema PIC MCU-ovima, a nisam obracao paznju na AVR arhitekturu.
Evo ispravke programa:
Code:
.DSEG MAX6675_Result: .BYTE 2
.CSEG
readThermoCouple:
cbi PORTB, 3 ; Select MAX
ldi R16, 0x00
out SPDR, R16 ; Send Dummy Byte
Read_Temp_MSB:
in R17, SPSR ; Read Data
sbrs R17, SPIF ; Wait Until Read Data
rjmp Read_Temp_MSB
ldi R17, SPDR
out HIGH(MAX6675_Result), R17 ; Read Msb From MAX6675
out SPDR, R16 ; Send Dummy Byte
Read_Temp_LSB:
in R17, SPSR ; Read Data
sbrs R17, SPIF ; Wait Until Read Data
rjmp Read_Temp_LSB
ldi R17, SPDR
out LOW(MAX6675_Result), R17 ; Read LSB From MAX6675
sbi PORTB, 3 ; Deselect CS
ret