roboforum.ru

Технический форум по робототехнике.
Текущее время: 06 ноя 2024, 22:29

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 2149 ]  На страницу Пред.  1, 2, 3, 4, 5, 6 ... 144  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: 11 мар 2006, 14:32 
Не в сети

Зарегистрирован: 09 мар 2006, 15:40
Сообщения: 8
Спасибо Вам wolf!
Всё заработало.

 :D  :D  :D


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 11 мар 2006, 22:35 
Не в сети
Мастер Самоделкин
Аватара пользователя

Зарегистрирован: 11 окт 2004, 19:20
Сообщения: 3678
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич
Подскажите плиз где в CodeVision увеличить размер стека? И возможно ли это? А то он предупреждает что 6 байтов осталось, а мне еще кучу функций дописывать надо...  :roll:

-----

Уже нашел. Вопрос снят.
Теперь такое дело: чем можно отсимулировать Тини26?  :roll:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 мар 2006, 00:03 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
-= Александр =- писал(а):
Подскажите плиз где в CodeVision увеличить размер стека?

-----

Уже нашел. Вопрос снят.  


Эту тайну в могилу унесешь ?



-= Александр =- писал(а):
чем можно отсимулировать Тини26?  :roll:


Атмеловской студией конечно.

===========

А в одном фолианте

я советую по-возможности брать МК для которых у вас есть все необходимое.


Вложения:
z12.png
z12.png [ 91.56 КиБ | Просмотров: 14027 ]


Последний раз редактировалось avr123.nm.ru 30 мар 2007, 16:20, всего редактировалось 2 раз(а).
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 мар 2006, 00:05 
Не в сети
Мастер Самоделкин
Аватара пользователя

Зарегистрирован: 11 окт 2004, 19:20
Сообщения: 3678
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич
Размер стека я нашел в свойствах проекта.
А со студией я почти не работал и осваивать ее мне влом, отлаживать буду на макетке...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 мар 2006, 04:32 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
USB программатор для AVR - сделан на ATmega8 - довольно простой

http://www.fischl.de/usbasp/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 мар 2006, 22:56 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2005, 11:49
Сообщения: 201
Откуда: Мск
Почему я не люблю Си - потому что на нем часто делаешь такие ошибки, что хрен поймешь где она...

вот например


Код:

unsigned char gen[]={     0x11101110b, 0x00000110b, 0x11110010b, 0x11010110b,
                                                        0x00011110b, 0x11011100b, 0x11111100b, 0x10000110b,
                                                        0x11111110b, 0x11010110b, 0x00010000b, 0x00000000b };

...
slcd_print(void)
{
unsigned char d,t;

...

for (d=0; d<10; d++)
{
t=gen[d] & 0x00001111b;
//t=t>>4;
PORTB=t;

...
}


В цикле выводится всегда одно и то же число
Если написать просто
t=d & 0x00001111b;
то как и положено выводятся разные числа..

В чем ошибка?????????????????
я уже 2 часа долбаюсь - нифига.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 мар 2006, 00:10 
Не в сети

Зарегистрирован: 23 июл 2005, 00:39
Сообщения: 63
Откуда: Казань
Всё дело в числах :)
0x00001111b - это шестнадцатеричное число, большое такое.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 мар 2006, 01:27 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2005, 11:49
Сообщения: 201
Откуда: Мск
СПАСИБО!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 мар 2006, 01:55 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
dx40 писал(а):
   
Почему я не люблю Си - потому что на нем часто делаешь такие ошибки, что хрен поймешь где она...


пи чем же тут Си если вы даже не посмотрели Хелп компилятора (раздел Constants) о форме записи чисел ?!

dx40 писал(а):
 
я уже 2 часа долбаюсь - нифига.


За это время можно было прочитать "Си для МК" на
стр. 5 все знают чего.

Там как раз и про это.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 мар 2006, 02:49 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2005, 11:49
Сообщения: 201
Откуда: Мск
Вот поэтому мне си и не нравится.
ну если написано
const char a=8475982347529740;
то тут явно ошибка, а но прглатывает это... А потом ракеты взрываются...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 мар 2006, 04:02 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
dx40 писал(а):
Вот поэтому мне си и не нравится.
ну если написано
const char a=8475982347529740;
то тут явно ошибка, а но прглатывает это... А потом ракеты взрываются...


Дак тож не Си виновен, а автор компилятора который проглатывает это.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 мар 2006, 03:13 
Не в сети

Зарегистрирован: 16 мар 2006, 02:56
Сообщения: 2
Имею дело с mega8
Пытаюсь сделать робота...
Это мой первый опыт
прежде чем сделать что-то существенное хочу собрать схемку, в которой через заданное кол-во времени 2 диода будут мигать.
Я так понимаю, что если ножка сконфигурирована на выход, то если её через светодиод замкнуть на GND то он должен светиться (при условии что он работоспособен и правильно подключен и ток через него течёт допустимый).
Светодиоды замкнуты на B0-GND и D7-GND

Вот мой листинг

#include <mega8.h>

// Timer 1 overflow interrupt service routine
interrupt [TIM1_OVF] void timer1_ovf_isr(void)
{
// Reinitialize Timer 1 value
TCNT1H=0xFF;
TCNT1L=0xFF;
// Place your code here
PORTB.0^=1;
PORTD.7^=1;
}

// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=Out
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=0
PORTB=0x01;
DDRB=0x01;

// Port C initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=Out Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=0 State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x80;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
TCCR0=0x00;
TCNT0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 3,598 kHz
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: On
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x05;
TCNT1H=0xFF;
TCNT1L=0xFF;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x04;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// Global enable interrupts
#asm("sei")

while (1)
     {
     };
}

С прошивкой проблем нет. Использую uniprof+codevision
Не понятно почему не работает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 мар 2006, 10:37 
Не в сети

Зарегистрирован: 23 июл 2005, 00:39
Сообщения: 63
Откуда: Казань
Неправильно обрабатывается прерывание. В прерывании в счётчик таймера1 загружается 0xFFFF, значит, он переполнится на следующем же тике, т.е. будет не мигание, а горение вполнакала.
Лучше использовать режим таймера СТС, тогда не нужно будет в прерывании ничего перегружать, достаточно будет загрузить на старте регистр OCR1A или OCR1B (не забываем поправить вектор прерывания TIM1_OVF на TIM1_COMPA/B).
Да, CV понимает 16-битные регистры, незачем писать REGH=aa, REGL=bb, можно сразу REG=aabb.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 мар 2006, 13:45 
Не в сети

Зарегистрирован: 07 мар 2006, 23:03
Сообщения: 6
Откуда: Краснодар
Подскажите как сделать обработчик прерываний к примеру на INT1
у меня не получилось.
#include <avr/io.h>
#include <avr/signal.h>
#include <avr/interrupt.h>

#define F_CPU 10.0
#include <avr/delay.h>

SIGNAL(SIG_INTERRUPT1)
{
asm volatile("sbi 0x15, 0x07");
SREG = SREG | 0x80;
}

int main(void)
{
asm volatile("Cbi 0x11, 0x03"); ///DDRD 3
asm volatile("sbi 0x14, 0x07"); ///DDRC 7


asm volatile("Cbi 0x12, 0x03");
asm volatile("cbi 0x15, 0x07");  

GICR = 0x80;
SREG = SREG | 0x80;

for(;;) _delay_ms(100);

return 0;
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 мар 2006, 15:04 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Советую использовать генераторы начального кода компиляторов CVAVR  или  ICC      - стр 4 курса.

для WinAVR есть оболочка AtmanAVR - там тоже генератор есть.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2149 ]  На страницу Пред.  1, 2, 3, 4, 5, 6 ... 144  След.

Часовой пояс: UTC + 4 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


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

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO