Найдено 5 результатов

shilvlad
Пт окт 31, 2014 17:22:55
Форум: AVR
Тема: Atmega8515 + Spi
Ответы: 11
Просмотры: 2745

Re: Atmega8515 + Spi

#include <avr/interrupt.h> вижу
sei(); не нашел.
Сам недавно сталкнулся с SPI режим Master
с прерываниями отказывался работать, убрал прерывания заработало, но есть одно НО после передачи n-быйт МК виснет, т.е. есть функция передачи 20 символов (1-й строки) на дисплей, 4 строки передается на 5 ...
shilvlad
Пт окт 31, 2014 11:27:32
Форум: AVR
Тема: Atmega8515 + Spi
Ответы: 11
Просмотры: 2745

Re: Atmega8515 + Spi

Если вдруг кому-либо будет не лень читать, вот мой, уже до неприличия упрощенный, код:

#define F_CPU 8000000UL

#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>

// USART
//////////////////////////////////////////////////////////

void USART_Init( unsigned int baud ){
UBRRH ...
shilvlad
Пт окт 31, 2014 10:08:10
Форум: AVR
Тема: Atmega8515 + Spi
Ответы: 11
Просмотры: 2745

Re: Atmega8515 + Spi

Друзья, с учетом Ваших замечаний написана функция записи:
Что бы было понятно где затуп происходит добавил везде вывод номера выполненной команды.
Виснет на строке после "WR - 4".

Надеюсь на Вашу помощь...

void W5100_Write(uint16_t addr,uint8_t data){
// Activate the CS pin
SPI_PORTX &= ~(1 ...
shilvlad
Пт окт 31, 2014 00:28:13
Форум: AVR
Тема: Atmega8515 + Spi
Ответы: 11
Просмотры: 2745

Re: Atmega8515 + Spi

Протеусовский SPI Debugger говорит что я что-то не так делаю (см картинку DORD1.jpg) (При этом DORD = 1)


При DORD=0 картинка DORD2.jpg


void SPI_Init(void){
DDRB |= (1<<SPI_MOSI)|(1<<SPI_SCK)|(1<<SPI_SS)|(0<<SPI_MISO);
PORTB |= (1<<SPI_MOSI)|(1<<SPI_SCK)|(1<<SPI_SS)|(1<<SPI_MISO);
SPCR ...
shilvlad
Чт окт 30, 2014 17:00:40
Форум: AVR
Тема: Atmega8515 + Spi
Ответы: 11
Просмотры: 2745

Atmega8515 + Spi

Доброго времени суток, друзья.

Всю голову себе сломал об следующую проблему.

Прикручиваю atmega8515 через SPI к W5100. Столкнулся с проблемами в самом начале - в процессе обучения микроконтроллера инициализировать SPI и передать байт.

Делаю инициализацию так:

void SPI_Init(void)
{
DDRB |= (1 ...

Перейти к расширенному поиску