ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
29 июня
240207 Топик полностью
mazur (22.02.2011 07:24 - 10:28, просмотров: 176) ответил maik-vs на Интересно, если я снова поспорю с этой пламенной максимой, мой пост опять снесут?
Я поспорю. Vit правильно написал, это одна кастрированная задача. Если действовать по вашему, то тогда в других задачах выбывают из игры указанные вами регистры. Опять же в указанном вами примере только прием данных. А требуется и прием и передача. Если пакет данных. Еще счетчик байтов в пакете. Еще проверка счетчика. Пример кода, если использовать прерывания. 42 инструкции. В тактах еще грусснее... SPI_BYTES_SIZE: .byte 1 sts SPI_CNT_BYTES,RCLR ldi r16,2 sts SPI_BYTES_SIZE,r16 lds r16,SPI_TRANSFER_BUFFER out SPDR,r16 SPI_Transfer_Int_Init ;========================================================================= SPI_Transfer_Int: push r16 ; 1 in r16,SREG ; 1 push r16 ; 1 push r17 ; 1 push CNT ; 1 push XL ; 1 push XH ; 1 push YL ; 1 push YH ; 1 ldix SPI_RECEIVE_BUFFER ; 2 ldiy SPI_TRANSFER_BUFFER ; 2 lds CNT,SPI_CNT_BYTES ; 1 lds r17,SPI_BYTES_SIZE ; 1 addw X,CNT,RCLR ; 2 in r16,SPDR ; 1 st X,r16 ; 1 inc CNT ; 1 cp CNT,r17 ; 1 brsh SPI_Transfer_Int_Off ; 1 sts SPI_CNT_BYTES,CNT ; 1 addw Y,CNT,RCLR ; 2 ld r16,Y ; 1 out SPDR,r16 ; 1 rjmp SPI_Transfer_Int_End ; 1 SPI_Transfer_Int_Off: in r16,SPCR ; 1 cbr r16,1<<SPIE ; 1 out SPCR,r16 ; 1 cbr FLAGS,1<<SPITC_FLG ; 1 SPI_Transfer_Int_End: pop YH ; 1 pop YL ; 1 pop XH ; 1 pop XL ; 1 pop CNT ; 1 pop r17 ; 1 pop r16 ; 1 out SREG,r16 ; 1 pop r16 ; 1 reti ; 1 ;=========================================================================