Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SPI на mega168 (Assembler)
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
vovo4ka888
У меня голова лопается по шву...

В AVRstudio работает норм, но Proteus тупо молчит всеми портами
и не выдает ошибок ни одной.
Что не так-то? sad.gif

Спасибо заранее

CODE
.include <m168def.inc>

.def temp = r16

.equ SS = PB2
.equ MOSI = PB3
.equ MISO = PB4
.equ SCK = PB5

.cseg
.org 0
jmp RESET
.org SPIaddr
jmp EXT_SPI

EXT_SPI:
reti

RESET:
cli
ldi temp, low(RAMEND)
out SPL, temp
ldi temp, high(RAMEND)
out SPH, temp

ldi temp, 1<<SE
out SMCR, temp

ldi temp, (1<<SCK)|(1<<MOSI)|(1<<SS)|(1<<MISO)
out DDRB, temp
ser temp
out PORTB, temp
ldi temp, (1<<SPIE)|(1<<SPE)|(1<<MSTR)
out SPCR, temp

ldi ZH, high(0x00ff)
ldi ZL, low(0x00ff)
sei

Cycle:

cbi PORTB, SS
nop
nop
nop
nop
nop
nop
out SPDR, ZL
sleep
sbi PORTB, SS
nop
nop
nop
nop
nop
nop
jmp Cycle


P.S. На C не хочу писать принципиально
P.P.S. В частности он не выходит из SLEEP режима
Палыч
Цитата(vovo4ka888 @ May 12 2009, 14:39) *
Что не так-то? В частности он не выходит из SLEEP режима
А как оно, по-Вашему, должно выйти из Idle Mode?
defunct
Цитата(Палыч @ May 12 2009, 17:28) *
А как оно, по-Вашему, должно выйти из Idle Mode?

По прерыванию от SPI.

ldi temp, (1<<SPIE)|(1<<SPE)|(1<<MSTR)
out SPCR, temp

proteus фтопку.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.