Модераторы: PILOT, ManiaK, Mazzi
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Усапп в CVAVR, АТmega8 
:(
    Опции темы
SERGSERG
Дата 1.10.2005, 06:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 4.5.2005

Репутация: нет
Всего: нет



// Chip: ATMEGA8
// Memory Model: MEGA
// Data Stack Size: 512


//Номера телефонов которым разрешён доступ
#include <MEGA8.H>
#include <stdio.h>
#include <string.h>


char temp_inf[]="";//массив посредник
int schet_bait;//счётчик принятых и переданных байт, организуется для записи в массив и выборки из массива
bit bait_0A;// флаг организуется для определения конца пакета



//АТ-команды телефона

flash char OKEY[]={"OK"};
flash char ATE0[]={"ATE0"};
flash char CMGF[]={"AT+CMGF=0"};
flash char ENTER[]={0X0D,0X0A,''};


//подпрограмма прерывания по приёму байт
interrupt [12] void intrx(void)
{
temp_inf[schet_bait]=UDR;
if (temp_inf[schet_bait]==0x0A)
{
UCSRA=0X00;
UCSRB=0X48;
}
else schet_bait++;
}


//подпрограмма прерывания по передаче байт от контроллера
interrupt [14] void inttx(void)
{
UDR=temp_inf[schet_bait];
if (temp_inf[schet_bait]==0x0A)
{
schet_bait=0;
UCSRA=0X00;
UCSRB=0X90;
}
else schet_bait++;
}




void main (void)

{

// Объявление переменных


start:
//Настроцка регистров упавления
SREG=0b00000000;
OSCCAL=0XFF;

//Настройка УСАППа
UCSRB=0x48;
UCSRC=0x86;

UBRRH=0x00;
UBRRL=0x59;

strcpyf(temp_inf,ATE0);
UCSRA=0x00;
#asm
sei;
#endasm





// передача пакета телефону
per_kontrollera:
strcatf(temp_inf,ENTER);
bait_0A=0;
schet_bait=0;


//вызываем прерывания передачи


ZIKL:
if (strstrf(temp_inf,ATE0))
{
strcpyf(temp_inf,CMGF);
strcatf(temp_inf,ENTER);
schet_bait=0;
UDR='';
}
goto ZIKL;

}

Программа по задумке доложна работать так.
Изначально передаёт в УСАПП содержимое массива CMGF до тех пор пока не будет передан байт 0А. Потом принемает ATE0 до приёма байта 0А и если действительно принято ATE0, то сново передаёт CMGF.
В реале пердаёт содержимое массива CMGF и при посылке ATE0 на контроллер он молчит
Даг вот несколько вопросов
1) С чем это связанно?Где ошибка?
2) Почемуто не генерируется прерывание по передаче при установке програмно бита TXC регистра UCSRA UCSRA.6=1. Пробовал в АВР СТУДИО не генерируется, не переходит на подпрограмму прервания, думал глюк студии. Но и при прошивке контроллера аналогичная ситуация, поэтому генерирую переход на подпрограмму по передаче UDR=''. Даг почему же не переходит на прерывание?

3)Только начал разбираться, может можно какнибудь проще обмениваться посылками
Работаю на CVAVR 1.24.1с, единственная которую смог сломать
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

На данный раздел помимо Правил форума распространяются текже следующие правила:


  • Прежде чем создать тему воспользуйтесь поиском или посмотрите в faq. Возможно на форуме уже есть ответ на ваш или близкий к вашему вопрос.
  • В заголовке темы в квадратных скобках обозначьте используемое семейство микроконтроллера: [avr],[pic],[arm].
  • При создании темы с вопросом указывайте участок кода с ошибкой, версию компилятора, схемы подключения, fuse биты и прочие данные, которые помогут найти правильный ответ. Для форматирования текста программ используйте кнопку код.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Для флуда, просьб выполнить задание, поиска партнёров или исполнителей существуют свои разделы.
  • Если вы заметили несовместимое с правилами сообщение, то можете уведомить об этом модератора раздела нажав кнопку Репорт у соответствующего сообщения.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема »


 




[ Время генерации скрипта: 0.0593 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.