Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
При изучении 1-wire протокола столкнулся с трудностями. Лишний символ на осциллограмме. Заранее благодарен за любой совет.
Отправлено
Fantomas (82.207.124.122) 22 июля 2010, г. 11:01
При изучении 1-wire протокола столкнулся с трудностями. Лишний символ на осциллограмме. Осциллограмма во вложении. Заранее благодарен за любой совет.
Далее текст программы:
.include "tn2313def.inc" //подключаем заголовочный файл
.def Temp0=R16
.def Temp1=R17
.def Temp2=R18
.def TmpRcve=R19
.def ActFl=R20
.def RBRRH=R21
.def RBRRL=R22
.def BitCnt=R23
.def RRByte=R24
.def RRByteC=R25
.dseg
.cseg //обозначает начало программного сегмента
.org 0 //задает начальный адрес. В данном случае он = 0
;*********** вектора прерываний ***************************
rjmp Reset ; Reset Handler
rjmp INT_0 ; External Interrupt0 Handler
rjmp INT_1 ; External Interrupt1 Handler
rjmp TIM1_CAPT ; Timer1 Capture Handler
rjmp TIM1_COMPA ; Timer1 CompareA Handler
rjmp TIM1_OVF ; Timer1 Overflow Handler
rjmp TIM0_OVF ; Timer0 Overflow Handler
rjmp USART0_RXC ; USART0 RX Complete Handler
rjmp USART0_DRE ; USART0,UDR Empty Handler
rjmp USART0_TXC ; USART0 TX Complete Handler
rjmp ANA_COMP ; Analog Comparator Handler
rjmp PCINT ; Pin Change Interrupt
rjmp TIMER1_COMPB ; Timer1 Compare B Handler
rjmp TIMER0_COMPA ; Timer0 Compare A Handler
rjmp TIMER0_COMPB ; Timer0 Compare B Handler
rjmp USI_START ; Usi Start Handler
rjmp USI_OVERFLOW ; USI Overflow Handler
rjmp EE_READY ; EEPROM Ready Handler
rjmp WDT_OVERFLOW ; Watchdog Overflow Handler
;Reset:
INT_0:
INT_1:
TIM1_CAPT:
TIM1_COMPA:
TIM1_OVF:
TIM0_OVF:
USART0_RXC:
USART0_DRE:
USART0_TXC:
ANA_COMP:
PCINT:
TIMER1_COMPB:
TIMER0_COMPA:
TIMER0_COMPB:
USI_START:
USI_OVERFLOW:
EE_READY:
WDT_OVERFLOW:
reti
Reset:
ldi Temp1,0
ldi Temp2,0
//USART_Init:
; Set baud rate
out UBRRH, r17
out UBRRL, r16
; Enable receiver and transmitter
ldi r16, (1<<RXEN)|(1<<TXEN)
out UCSRB,r16
; Set frame format: 8data, 2stop bit
ldi r16, (1<<USBS)|(3<<UCSZ0)
out UCSRC,r16
ldi Temp0,0b00010000
out DDRD,Temp0
M1:
;rcall RRCmd
;rjmp M1
Mi: cbi PortD,4
Main:
// Установка скорости 9600
ldi RBRRH,0
ldi RBRRL,51
; Enable receiver and transmitter
ldi Temp2, (1<<RXEN)|(1<<TXEN)
rcall USART_Init
ldi Temp0,0b11110000 ; Reset sequence
rcall USART_Transmit
rcall USART_Receive
mov Temp0,TmpRcve
cpi Temp0,0b11110000
brsh Mi
cpi Temp0,0b00010000
brlo Mi
sbi PortD,4
ldi RBRRH,0
ldi RBRRL,3
; Enable transmitter
ldi Temp2, (0<<RXEN)|(1<<TXEN)
rcall USART_Init
ldi Temp1,1 ;0
ldi Temp2,3 ;0
PauseM:
dec Temp1
brne PauseM
dec Temp2
brne PauseM
rcall RRCmd
rcall ReadRom
rjmp Main
USART_Init:
; Set baud rate
out UBRRH, RBRRH
out UBRRL, RBRRL
out UCSRB,Temp2
ret
USART_Transmit:
; Wait for empty transmit buffer
sbis UCSRA,UDRE
rjmp USART_Transmit
; Put data (r16) into buffer, sends the data
out UDR,Temp0
ret
USART_Receive:
; Wait for data to be received
sbis UCSRA, RXC
rjmp USART_Receive
; Get and return received data from buffer
in TmpRcve, UDR
ret
RRCmd:
ldi BitCnt,8
; Рабочий кусок кода для генерации 8ми бит 33Н
ldi RRByte,0b11110000
;ldi RRByte,0b11111111
NxWB:
dec BitCnt
mov RRByteC,RRByte
rol RRByte
andi RRByteC,0b10000000
cpi RRByteC,0b10000000
brne WZero
ldi Temp0,255
rcall USART_Transmit
rjmp CpEx
WZero:
ldi Temp0,0
rcall USART_Transmit
CpEx:
cpi BitCnt,0
brne NxWB
ret
ReadRom:
ldi BitCnt,64
ldi RBRRH,0
ldi RBRRL,3
; Enable transmitter
ldi Temp2, (0<<RXEN)|(1<<TXEN)
rcall USART_Init
ldi Temp1,1 ;0
ldi Temp2,0 ;0
Pause:
dec Temp1
;brne Pause
dec Temp2
;brne Pause
;ldi RRByte,0b00110011
NxWB1:
dec BitCnt
ldi Temp0,255
rcall USART_Transmit
cpi BitCnt,0
brne NxWB1
ret
Картинка: http://photofile.ru/photo/photopixels/95219112/large/119056865.jpg
Составить ответ | Вернуться на конференцию
Ответы
- врубаться лень - но мож "лишний импульс" - это сигнал присутствия на линии девайсас которым поговорить хотите?) - basilmak (22.07.2010, 11:48:39 178.176.211.57, пустое)
- Нет - Fantomas (22.07.2010, 14:44:17 82.207.124.122, пустое)
- Ага именно так и есть ! :) - miv (22.07.2010, 11:49:54 192.168.7.28,84.52.111.234, пустое)
- А что конктретно нна картинке не нравится ? - miv (22.07.2010, 11:44:42 192.168.7.28,84.52.111.234, пустое)