Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Тема закрыта

подключение atmega48 к enc28j60

Вс июн 10, 2012 18:08:42

Привет. Я в ассемблере полный 0. Есть код для attiny2313, соединяющий ее с enc, написанный на ассемблере. Так вот мне нужно переписать этот код под атмегу48па.

Код:
; trancieves byte through SPI
; in R16 - byte to transmit
; out R16 - received byte
; uses R18,R19
spi:

   out      USIDR,R16

   ldi      R18,(1<<USIWM0)|(1<<USITC)
   ldi      R19,(1<<USIWM0)|(1<<USITC)|(1<<USICLK)

   out      USICR,R18
   out      USICR,R19
   out      USICR,R18
   out      USICR,R19
   out      USICR,R18
   out      USICR,R19
   out      USICR,R18
   out      USICR,R19
   out      USICR,R18
   out      USICR,R19
   out      USICR,R18
   out      USICR,R19
   out      USICR,R18
   out      USICR,R19
   out      USICR,R18
   out      USICR,R19

   in      R16,USIDR

   ret

Взял пример из даташита атмеги, но не заработал spi. Кто знает, напишите..

по сути надо модернизировать вот этот код, чтоб использовал R18 и R19 регистры, имхо конечно.
Код:
SPI_MasterInit:
; Set MOSI and SCK output, all others input
ldi r17,(1<<DD_MOSI)|(1<<DD_SCK)
out DDR_SPI,r17
; Enable SPI, Master, set clock rate fck/16
ldi r17,(1<<SPE)|(1<<MSTR)|(1<<SPR0)
out SPCR,r17
ret
SPI_MasterTransmit:
; Start transmission of data (r16)
out SPDR,r16
Wait_Transmit:
; Wait for transmission complete
in r16, SPSR
sbrs r16, SPIF
rjmp Wait_Transmit
ret
Тема закрыта