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

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

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

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

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

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

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

Закрытая тема
Опции темы
Непрочитано 07.02.2008, 17:02   #11
soladko
Почётный гражданин KAZUS.RU
 
Регистрация: 28.12.2007
Сообщений: 1,699
Сказал спасибо: 9
Сказали Спасибо 149 раз(а) в 128 сообщении(ях)
soladko на пути к лучшему
По умолчанию

Я же пишу что кварц точно нормальный, а работает прога как буд-то кварц на мегагерц. И если менять значение в проге, то ведь программа соответтсвенно реагировать должна, не так ли?
Реклама:
soladko вне форума  
Непрочитано 07.02.2008, 17:13   #12
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,955
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
nml на пути к лучшему
По умолчанию

Сообщение от soladko
И если менять значение в проге, то ведь программа соответтсвенно реагировать должна, не так ли?
Ну, если тот компилятор понимает что-то типа delay_ms то по идее должен пересчитывать исходя из этого. Мой IAR так не умеет, у него есть delay_cycles

А у вас точно 2313 или все же тини2313? Если последнее, то надо бы фузы на кварц переключить, так как с завода он как раз на внутреннем RC работает - 8 МГц и делитель на 8. Симптомы похожие
nml вне форума  
Непрочитано 07.02.2008, 17:21   #13
soladko
Почётный гражданин KAZUS.RU
 
Регистрация: 28.12.2007
Сообщений: 1,699
Сказал спасибо: 9
Сказали Спасибо 149 раз(а) в 128 сообщении(ях)
soladko на пути к лучшему
По умолчанию

В том то и дело, что у меня AT90S2313, а там нету встроеного генератора, вот я не могу и понять, почему Delay так работает, компилятор то типа сам понимает время и должен пересчитывать, исходя из указаной частоты кварца. Тоесть допустим моргает светодиод раз в секунду, а в проге увеличим значение кварца в два раза, и он должен моргать в два раза медленнее....но не тут-то было.....
soladko вне форума  
Непрочитано 07.02.2008, 18:46   #14
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию

F_CPU в тексте нужно определять ДО #include util/delay.h
Попробуйте так:
Код:
#include ‹avr/io.h› 
#define F_CPU 4000000UL // 4 MHz
#include ‹avr/delay.h› 
......
А в мейке Ваше определение вообще не используется.
Кстати посмотрите этот хидер, в нем существует ограничение на максимальную задержку в зависимости от тактовой частоты. При 4Мгц максимальная задержка равна 192мС. Все что длиннее обрежется до этого значения БЕЗ выдачи предупреждения! В случае неопределенной тактовой в хидере она назначается равной 1Мгц - это то, что происходит у Вас, и опять же без выдачи предупреждения
Попробуйте работать под студией - она убережет от таких ошибок. И не используйте INTERRUPT или SIGNAL - теперь прерывания определяются через
Код:
ISR(_vektor_name_)
{

}
Добавлю - не сразу заметил - обновите компилятор!!! Ваш безнадежно устарел.
kison вне форума  
Непрочитано 07.02.2008, 19:02   #15
soladko
Почётный гражданин KAZUS.RU
 
Регистрация: 28.12.2007
Сообщений: 1,699
Сказал спасибо: 9
Сказали Спасибо 149 раз(а) в 128 сообщении(ях)
soladko на пути к лучшему
По умолчанию

Я пробовал тактовую оъявить раньше, ничего не поменялось. Только что пробовал. Я даже все файлы в папке удалил, чтоб случайно старый хекс не остался
Неопределенная тактовая в хидере-это где? потому что в самом деле получается игнорирует ту, что выставляю в программе.
Вы имеете ввиду новую версию винавра скачать?
soladko вне форума  
Непрочитано 07.02.2008, 19:13   #16
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию

Сообщение от soladko
Я пробовал тактовую оъявить раньше, ничего не поменялось. Только что пробовал. Я даже все файлы в папке удалил, чтоб случайно старый хекс не остался
Неопределенная тактовая в хидере-это где? потому что в самом деле получается игнорирует ту, что выставляю в программе.
Вы имеете ввиду новую версию винавра скачать?
Именно так объявляли:
Код:
#define F_CPU 4000000UL
#include ‹avr/delay.h›
?
uL != UL
В новом хидере delay.h уже есть варнинг, кстати сам о нем только что узнал :
Код:
#ifndef F_CPU
/* prevent compiler error by supplying a default */
# warning "F_CPU not defined for ‹util/delay.h›"
# define F_CPU 1000000UL
#endif
Хидер с задержками переехал в каталог util еще в 2006 году, так что Ваша версия "слегка" с бородой.
kison вне форума  
Непрочитано 07.02.2008, 19:25   #17
soladko
Почётный гражданин KAZUS.RU
 
Регистрация: 28.12.2007
Сообщений: 1,699
Сказал спасибо: 9
Сказали Спасибо 149 раз(а) в 128 сообщении(ях)
soladko на пути к лучшему
По умолчанию

Только что написал даже большими буквами UL. HEX получил идентичный. (((


› "make.exe" all

-------- begin --------
avr-gcc (GCC) 3.4.3
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


Compiling: main.c
avr-gcc -c -mmcu=at90s2313 -I. -gdwarf-2 -DF_CPU=4000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.lst -std=gnu99 -MD -MP -MF .dep/main.o.d main.c -o main.o
main.c:38:51: warning: no newline at end of file

Linking: main.elf
avr-gcc -mmcu=at90s2313 -I. -gdwarf-2 -DF_CPU=4000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.o -std=gnu99 -MD -MP -MF .dep/main.elf.d main.o --output main.elf -Wl,-Map=main.map,--cref -lm

Creating load file for Flash: main.hex
avr-objcopy -O ihex -R .eeprom main.elf main.hex

Creating load file for EEPROM: main.eep
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load"
--change-section-lma .eeprom=0 -O ihex main.elf main.eep

Creating Extended Listing: main.lss
avr-objdump -h -S main.elf › main.lss

Creating Symbol Table: main.sym
avr-nm -n main.elf › main.sym

Size after:
main.elf :
section size addr
.text 162 0
.data 0 8388704
.bss 0 8388704
.noinit 0 8388704
.eeprom 0 8454144
.debug_aranges 20 0
.debug_pubnames 27 0
.debug_info 666 0
.debug_abbrev 203 0
.debug_line 203 0
.debug_str 159 0
Total 1440


AVR Memory Usage:
-----------------
Device: at90s2313

Program: 162 bytes (2.0% Full)
(.text + .data + .bootloader)

Data: 0 bytes (0.0% Full)
(.data + .bss + .noinit)


-------- end --------


› Process Exit Code: 0
soladko вне форума  
Непрочитано 07.02.2008, 19:25   #18
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию

Оказывается полезно почитать то, что казалось давно знаешь. Жизнь не стоит на месте - диапазон задержек был существенно расширен. В GCC 3.4.6(winavr20060421):
Код:
 The maximal possible delay is 262.14 ms / F_CPU in MHz.
В свежем уже:
Код:
When the user request delay which exceed the maximum possible one,
   _delay_ms() provides a decreased resolution functionality. In this
   mode _delay_ms() will work with a resolution of 1/10 ms, providing
   delays up to 6.5535 seconds (independent from CPU frequency).  The
   user will not be informed about decreased resolution.
kison вне форума  
Непрочитано 07.02.2008, 19:41   #19
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию

Попробовал у себя:
Код:
#include ‹avr/io.h› 
#define F_CPU 4000000UL // 4 MHz 
#include ‹util/delay.h› 


int main(void) // начало основой программы 
{ 
unsigned char i;
DDRD = 0xff; // все выводы порта D сконфигурировать как выходы 

while (1) 
	{ 
	PORTD = 0xff; // установить "1" на всех линиях порта D 
	for(i=0;i‹20;i++) _delay_ms(50);
	PORTD = 0x00; // установить "0" на всех линиях порта D 
	for(i=0;i‹20;i++) _delay_ms(50);
	}

} // закрывающая скобка основной программы
Все работает как и должно. F_CPU в мейке не определял.
kison вне форума  
Непрочитано 07.02.2008, 19:42   #20
soladko
Почётный гражданин KAZUS.RU
 
Регистрация: 28.12.2007
Сообщений: 1,699
Сказал спасибо: 9
Сказали Спасибо 149 раз(а) в 128 сообщении(ях)
soladko на пути к лучшему
По умолчанию

Интересная вещь получается, разницы в хекс фалах нету если ставить 4 или ставить 1 мегагерц, но если ставлю 100 килогерц, то светодиод моргает быстрее.....

Кто может дать новый компилятор , провереный на себе, и сказать как его установить? Поверх того что у меня есть? или как?
soladko вне форума  
Закрытая тема

Закладки


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
пара вопросов по EAGLE 4.13 xelos Proteus, KiCAD и другие ECAD 7 08.03.2009 02:00
пара вопросов по карточкам mmc Churchill Микроконтроллеры, АЦП, память и т.д 2 13.08.2008 22:51
Пара вопросов по USBasp и avrdude graham Микроконтроллеры, АЦП, память и т.д 1 16.02.2006 23:25
Пара вопросов по AD620 Ден Микроконтроллеры, АЦП, память и т.д 1 24.12.2004 16:44


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot