roboforum.ru

Технический форум по робототехнике.

 

посмотрите код...

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

посмотрите код...

Сообщение tormozzz » 20 окт 2009, 23:41

кто хорошо знает си? посмотрите мой код плз
почему VMLAB ругается на сторожевой таймер? и где можно сэмулировать осцилограф, проверить будет ли там 36 КГц?

Код: Выделить всёРазвернуть
#include <mega8.h>

int flash_counter=0;
int active_tsop=0;     
int delay=0;

void init_tsop(void)
{
  flash_counter=40;
  GIFR=0b10000000;
  GICR=0b10000000;
}

// External Interrupt 1 service routine
interrupt [EXT_INT1] void ext_int1_isr(void)
{
  active_tsop = 1;
}

// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
  TCNT0=0x91;
  if (flash_counter>0)flash_counter--;
  if (flash_counter==0)
  {
    //TIMSK=0b00000000;
    GICR=0b00000000;   
    delay++;
  }
  else
  {
    PORTC.0 = ~PORTC.0;
  }   
  if (delay==40)
  {
    init_tsop();
    delay=0;
  }
}

void main(void)
{                   
  #asm("wdr")
  WDTCR |= (1<<4)|(1<<3);     
  WDTCR |= (0<<3);
  PORTC=0b00000000;
  DDRC= 0b00000011; 
  PORTD=0b00001000;
  DDRD=0x00;
  TCCR0=0x01;
  MCUCR=0x00;
  #asm("sei") 
  init_tsop();
  TIMSK=0b00000001;

while (1)
      {
         if (flash_counter==0)
         {
           if (active_tsop!=0)
           {
             PORTC.1=1;
           }
           else
           {
             PORTC.1=0;
           }
         }

      };
}
tormozzz
 
Сообщения: 8
Зарегистрирован: 20 окт 2009, 23:28
Откуда: Армавир

Re: посмотрите код...

Сообщение executer » 20 окт 2009, 23:45

АВР123, давай! :Bravo:

Добавлено спустя 2 минуты 24 секунды:
wiki/AVR123
Аватара пользователя
executer
 
Сообщения: 784
Зарегистрирован: 30 янв 2009, 01:24
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел

Re: посмотрите код...

Сообщение galex1981 » 20 окт 2009, 23:48

Ты уверен что в этих строках:
Код: Выделить всёРазвернуть
WDTCR |= (1<<4)|(1<<3);       
WDTCR |= (0<<3);

Верно установил биты сторожевого таймера?
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4360
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: посмотрите код...

Сообщение avr123.nm.ru » 20 окт 2009, 23:52

tormozzz писал(а): почему VMLAB ругается на сторожевой таймер?
Я проверял в задаче 11 и разбирал АСМ код в листинге - http://avr123.nm.ru/z11.htm - CVAVR правильно работает с псом - точно по даташиту, но VMLAB-у что-то не нравится. Просто не обращай внимания.
Нажимай саетофор ...

tormozzz писал(а): где можно сэмулировать осцилограф, проверить будет ли там 36 КГц ?


Окно SCOPE - но лучше скачай PROTEUS - поприкольней ИМХО - http://proteus123.narod.ru
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: посмотрите код...

Сообщение tormozzz » 20 окт 2009, 23:55

galex1981 писал(а):Ты уверен что в этих строках:
Код: Выделить всёРазвернуть
WDTCR |= (1<<4)|(1<<3);       
WDTCR |= (0<<3);

Верно установил биты сторожевого таймера?


даташит на мега8 стр. 45:

void WDT_off(void)
{
/* reset WDT */
_WDR();
/* Write logical one to WDCE and WDE */
WDTCR |= (1<<WDCE) | (1<<WDE);
/* Turn off WDT */
WDTCR = 0x00;
}
tormozzz
 
Сообщения: 8
Зарегистрирован: 20 окт 2009, 23:28
Откуда: Армавир

Re: посмотрите код...

Сообщение avr123.nm.ru » 21 окт 2009, 00:06

tormozzz писал(а):
Код: Выделить всёРазвернуть
0<<3

Так не надо делать.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: посмотрите код...

Сообщение tormozzz » 21 окт 2009, 00:12

да я пробовал и
Код: Выделить всёРазвернуть
WDTCR |= (1<<4)|(1<<3);       
WDTCR = 0x00;

эффекта - 0
tormozzz
 
Сообщения: 8
Зарегистрирован: 20 окт 2009, 23:28
Откуда: Армавир

Re: посмотрите код...

Сообщение avr123.nm.ru » 21 окт 2009, 00:13

А чего нужно добиться ?
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: посмотрите код...

Сообщение tormozzz » 21 окт 2009, 00:18

отключения watchdog
VMLAB говорит что он включен и сбрасывает...

Добавлено спустя 3 минуты 28 секунд:
а код кто нить смотрел, он должен работать?
tormozzz
 
Сообщения: 8
Зарегистрирован: 20 окт 2009, 23:28
Откуда: Армавир

Re: посмотрите код...

Сообщение SSG » 21 окт 2009, 10:19

А что конкретно пишет VMLab? Он, как уже говорили выше, с вотчдогом глючновато работает.
Период можно измерить в окне SCOPE расставив закладки и посмотрев разницу во времени между ними. Для этого нужно в начале периода какую-нибудь ножку установить в 1, а в конце ноль и на перепады поставить закладки в SCOPE.
I live My life!
Аватара пользователя
SSG
 
Сообщения: 1058
Зарегистрирован: 15 янв 2007, 19:23
Откуда: Беларусь, Барановичи
прог. языки: С для МК, Delphi для ПК

Re: посмотрите код...

Сообщение tormozzz » 21 окт 2009, 16:15

хм... скачал протеус, присобачил на мою программу осцилограф.... он показал что при 8МГц кварце на эта программа выдаст 27.8КГц импульсы... Изображение
а мне надо 36 кгц... по моим расчетам 1 такт процессора = 1/8000000 что равно 0,000000125с. период колебания 36КГц равен 1/36000 = 0,00002777с. делим, получаем примерно 222 такта на одно колебание. таймер должен орать каждые 0.5 колебания. то есть 111 тактов. 256-111 равно 145 - каждый раз загружая это число в таймер мы должны получить примерно 36КГц колебания. протеус в это не верит и осцилограф выдает примерно 36КГц только при загрузке в таймер числа 177(установлено опытным путем).
Изображение
кто тут косячит? я или протеус?
tormozzz
 
Сообщения: 8
Зарегистрирован: 20 окт 2009, 23:28
Откуда: Армавир

Re: посмотрите код...

Сообщение avr123.nm.ru » 21 окт 2009, 16:17

А вы как думаете ? :)
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: посмотрите код...

Сообщение tormozzz » 21 окт 2009, 16:32

не могу знать, таварышь avr123.nm.ru
поэтому и спрашиваю... если я ошибаюсь, то укажите хоть где, а если протеус, то выкинуть его нафиг
tormozzz
 
Сообщения: 8
Зарегистрирован: 20 окт 2009, 23:28
Откуда: Армавир

Re: посмотрите код...

Сообщение avr123.nm.ru » 21 окт 2009, 16:35

Для указания прожект прицепите.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: посмотрите код...

Сообщение tormozzz » 21 окт 2009, 16:40

Projects.rar
(31.72 КиБ) Скачиваний: 5

это проект CVAVR

Добавлено спустя 32 секунды:
Ir test.rar
(29.7 КиБ) Скачиваний: 4

это протеус
tormozzz
 
Сообщения: 8
Зарегистрирован: 20 окт 2009, 23:28
Откуда: Армавир

След.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 1

Mail.ru counter