реклама на сайте
подробности

 
 
> Передача данных в ATtiny13
Oleg_IT
сообщение May 14 2007, 02:40
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Программирование в IAR.
Так как в ATtiny13 ни каких аппаратных интерфейсов нет, то приходится делать всё самому. Делаю трех проводную связь (наверное, можно более оптимально сделать, но пока так).
………………………………..
#include <ioavr.h>
#include <inavr.h>

unsigned int Byte = 0;
extern unsigned int ByteEx = 0;
struct {
unsigned Bt1 : 1;
unsigned Bt2 : 1;
unsigned Bt3 : 1;
unsigned Bt4 : 1;
};

void main( void )
{
Bt1 = 1;
Bt2 = 1;
Bt3 = 0;
Bt4 = 1;

DDRB = 0x03; // 00 0011
PORTB = 0x3C; // 11 1100
__enable_interrupt();

while (1)
{
if (PINB_Bit2 == 0)
{
if (Bt4)
{
Byte = 0;
Nbit = 0;
Bt4 = 0;
}
if (PINB_Bit4 == 0 && Nbit < 8)
{
if (Bt2)
{
PORTB_Bit1 = 1;

// if (PINB_Bit3)
Byte = 127;//|= (1 << Nbit);

Nbit++;
}
Bt2 = 0;
}
else
{
PORTB_Bit1 = 0;
Bt2 = 1;
}
if (Nbit == 8)
Bt3 = 1;
}
else
{
if (Bt3)
{
// ByteEx = Byte;
Bt4 = 1;
}
Bt3 = 0;
}
}
}
………………………………..

Пин 2 это Chip Select, пин 4 – Data Clock, пин 3 – данные. Если передаю большие значения, больше 40 – 50 (точно границу не отлавливал), то всё принимается нормально, если меньше, то идут сбои в тактировании битов, периодические объединения битов (виден четкий период). Пин 1 специально ввёл для теста. Также для теста закомментировал проверку бита данных (if (PINB_Bit3)) и установку константы в переменную данных. С константой ситуация не изменилась.
Переменные объявлял и как unsigned int, и как unsigned char.
Два дня бьюсь, не могу понять, в чём дело. Помогите разобраться.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
KRS
сообщение May 15 2007, 06:50
Сообщение #2


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



А вы родные APP Notes http://www.atmel.com/dyn/products/app_note...p?family_id=607
смотрели там например есть

AVR274: Single-wire Software UART (14 pages, revision A, updated 03/07)
This application note describes a software implementation of a single wire UART. The protocol supports half duplex communication between two devices. The only requirement is an I/O port supporting external interrupt and a timer compare interrupt.

AVR305: Half Duplex Compact Software UART (9 pages, revision C, updated 09/05)
This Application Note describes how to implement a polled software UART capable of handling speeds up to 614,400 bps on an AT90S1200.

AVR320: Software SPI Master

и т.д.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th August 2025 - 05:29
Рейтинг@Mail.ru


Страница сгенерированна за 0.01369 секунд с 7
ELECTRONIX ©2004-2016