Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Ищу пример uart для mega в codevision

Непрочитано 31.12.2010, 11:42  
code-by
Прописка
 
Регистрация: 04.08.2006
Сообщений: 181
Сказал спасибо: 1
Сказали Спасибо 31 раз(а) в 31 сообщении(ях)
code-by на пути к лучшему
Радость Ищу пример uart для mega в codevision

приветствую

Ищу рабочий пример связи между двумя мегами (аля 324) через UART под codevision с отправкой-приемом с использованием кольцевого буфера.
Необходимо отправлять - принимать числа int.
может есть пример с алгоритмом самосинхронизации
типа такого, но под Codevision:

Код:
  UsartMessage_t *msg;
  uint8_t *p, *q, summ, i;
  q = (uint8_t *)newMessage;
  summ = 0;

  if (wsn2usart.size ‹ MAX_USART_MESSAGE_QUEUE_COUNT)
  {
    wsn2usart.size++;
    msg = &wsn2usart.usartMessageQueue[wsn2usart.tail];
    if (++wsn2usart.tail ›= MAX_USART_MESSAGE_QUEUE_COUNT)
      wsn2usart.tail -= MAX_USART_MESSAGE_QUEUE_COUNT;

    p = msg-›payload;
    *p++ = 0x10;
    *p++ = 0x02;
    for (i = 0; i ‹ sizeof(AppMessage_t); i++)
    {
      if (*q == 0x10)
      {
        *p++ = 0x10;
        summ += 0x10;
      }
      summ += *q;
      *p++ = *q++;
    }
    *p++ = 0x10;
    *p++ = 0x03;
    summ += 0x10 + 0x02 + 0x10 + 0x03;
    *p++ = summ;

    msg-›size = p - msg-›payload;
  }

  //check sending state
  if (true == wsn2usart.isFreeUsart)
  {
    sendNextMessage();
  }
спасибо!
Реклама:
code-by вне форума  
Непрочитано 02.01.2011, 13:39  
vgtmaster
Прописка
 
Регистрация: 28.04.2008
Сообщений: 141
Сказал спасибо: 11
Сказали Спасибо 18 раз(а) в 9 сообщении(ях)
vgtmaster на пути к лучшему
По умолчанию Re: Ищу пример uart для mega в codevision

Сообщение от code-by Посмотреть сообщение
приветствую

Ищу рабочий пример связи между двумя мегами (аля 324) через UART под codevision с отправкой-приемом с использованием кольцевого буфера.
Необходимо отправлять - принимать числа int.
может есть пример с алгоритмом самосинхронизации
типа такого, но под Codevision:

Код:
  UsartMessage_t *msg;
  uint8_t *p, *q, summ, i;
  q = (uint8_t *)newMessage;
  summ = 0;

  if (wsn2usart.size ‹ MAX_USART_MESSAGE_QUEUE_COUNT)
  {
    wsn2usart.size++;
    msg = &wsn2usart.usartMessageQueue[wsn2usart.tail];
    if (++wsn2usart.tail ›= MAX_USART_MESSAGE_QUEUE_COUNT)
      wsn2usart.tail -= MAX_USART_MESSAGE_QUEUE_COUNT;

    p = msg-›payload;
    *p++ = 0x10;
    *p++ = 0x02;
    for (i = 0; i ‹ sizeof(AppMessage_t); i++)
    {
      if (*q == 0x10)
      {
        *p++ = 0x10;
        summ += 0x10;
      }
      summ += *q;
      *p++ = *q++;
    }
    *p++ = 0x10;
    *p++ = 0x03;
    summ += 0x10 + 0x02 + 0x10 + 0x03;
    *p++ = summ;

    msg-›size = p - msg-›payload;
  }

  //check sending state
  if (true == wsn2usart.isFreeUsart)
  {
    sendNextMessage();
  }
спасибо!

Пример программы передачи данных c COM Potr по USART на Atmega8:

/************************************************** ***
This program was produced by the
CodeWizardAVR V2.03.8a Evaluation
Automatic Program Generator
© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project : USART
Version : 0.1
Date : 21.10.2010
Author : vgtmaster
Company : vgtmaster
Comments: No comment


Chip type : ATmega8
Program type : Application
Clock frequency : 8,000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 256
************************************************** ***/

#include ‹mega8.h›

// Standard Input/Output functions
#include ‹stdio.h›
#include ‹m8_128.h›

unsigned char bcounter=0;
char ReceiveString [32]="duch ";

// Declare your global variables here
interrupt [USART_RXC]void USART_RX_interrupt (void)
{short i;
//UCSRB = (1‹‹RXEN)|(1‹‹TXEN);
bcounter = 0;
ReceiveString[bcounter] = UDR; /* Get and return received data from buffer */
bcounter+=1;
for ( i=0 ; i ‹ 3500 ; i++ )
{if (UCSRA & 0x80)
{i=0;
ReceiveString[bcounter++] = UDR;
}
}
}

////////Функция передачи данных///////////
void USART_Transmit(char count,char * buf) //count колличество передаваемых байт, buf массив.
{unsigned char i=0;
{for (i=0;i‹count;i++)
{while ( !( UCSRA & (1‹‹UDRE)) ){;}
UDR = buf[i];
}
}
}
//////////////////END/////////////////////

void USART_Init( unsigned int ubrr)
{/* Set baud rate */
UBRRH = (unsigned char)(ubrr››8,0);
UBRRL = (unsigned char)ubrr;
/* Enable receiver and transmitter */
UCSRB = (1‹‹RXCIE |1‹‹RXEN)|(1‹‹TXEN);
/* Set frame format: 8data, 2stop bit */
UCSRC = ((1 ‹‹ URSEL) | (1 ‹‹ UCSZ1) | (1 ‹‹ UCSZ0));
}


void main(void)
{#asm("sei")
USART_Init( 0x33); //9600 на 8МГц
// USART_Transmit(ReceiveString);

while (1)
{if (bcounter)
{
USART_Transmit(bcounter,ReceiveString); //Передача количества байт (bcounter, массив ReceiveString)
bcounter=0;
ReceiveString[0]=0;
}
};
}

Последний раз редактировалось vgtmaster; 02.01.2011 в 13:42.
vgtmaster вне форума  
Непрочитано 04.01.2011, 12:20  
code-by
Прописка
 
Регистрация: 04.08.2006
Сообщений: 181
Сказал спасибо: 1
Сказали Спасибо 31 раз(а) в 31 сообщении(ях)
code-by на пути к лучшему
По умолчанию Re: Ищу пример uart для mega в codevision

спасибо. но тут только отправка. и я просил пример отправки чисел размерностью int, а не строк...
code-by вне форума  
 

Метки
avr, codevision, mega, uart
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FAQ (ЧаВО) по PROTEUS для начинающих и не только dosikus Proteus 221 07.03.2024 22:45
Симуляция UART для AVR studio mm12345 Микроконтроллеры, АЦП, память и т.д 0 22.11.2010 15:40
Ищу схему и паспорт для реле ВС-10-33У4 Satellite83 Поиск схем. Делимся схемами 0 05.10.2010 22:59


Часовой пояс GMT +4, время: 03:35.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.