Вот здесь небольшой ликбез.MaxNzk писал(а):Добрый день.
Подскажите пожалуйста BootLoader под CodeVisionAVR.
CodeVision AVR в вопросах и ответах
Re: CodeVision AVR в вопросах и ответах
Re: CodeVision AVR в вопросах и ответах
ValBag писал(а):Вот здесь небольшой ликбез.MaxNzk писал(а):Добрый день.
Подскажите пожалуйста BootLoader под CodeVisionAVR.
Я уже читал этот материал, на этом сайте есть еще одна статья на эту тему, но не на один мой вопрос они не отвечают...
- Apparatchik
- Держит паяльник хвостом
- Сообщения: 908
- Зарегистрирован: Вс май 23, 2010 13:55:42
- Откуда: Украина, Александрия
Re: CodeVision AVR в вопросах и ответах
Как объявить глобальные переменные в основном файле чтоб они были выдны из подключаемого *.h файла? Или их нужно объявлять и там и там, неповлияет ли это на размер прошивки?
В основном файле объявил например в подключаемом файле тоже нужна переменная date, а её там невидно.
В основном файле объявил например
Код: Выделить всё
extern char date;
Последний раз редактировалось Apparatchik Пн фев 07, 2011 14:28:08, всего редактировалось 1 раз.
«И всё-таки она вертится!»
- AI_Disable
- Сверлит текстолит когтями
- Сообщения: 1116
- Зарегистрирован: Чт окт 15, 2009 14:16:18
- Откуда: Екб
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Обычно поступают наоборот: глобальные переменные объявляют в хидере, а используют - во основном тексте программы.
- Apparatchik
- Держит паяльник хвостом
- Сообщения: 908
- Зарегистрирован: Вс май 23, 2010 13:55:42
- Откуда: Украина, Александрия
Re: CodeVision AVR в вопросах и ответах
AI_Disable писал(а):Обычно поступают наоборот: глобальные переменные объявляют в хидере, а используют - во основном тексте программы.
В хидере нужно использовать "extern" ?
«И всё-таки она вертится!»
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
никогда не объявляйте ПЕРЕМЕННЫЕ в хидерах! это крайне порочная практика. в хидерах можно описывать только ССЫЛКИ на extern-переменные! такие ссылки по сути сделают ваши переменные ГЛОБАЛЬНЫМИ ДЛЯ ВСЕГО ПРОЕКТА. а объявление переменных в хидере приведет только к дублированию объявлений, т.е. к ошибке.AI_Disable писал(а):Обычно поступают наоборот: глобальные переменные объявляют в хидере, а используют - во основном тексте программы.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Apparatchik
- Держит паяльник хвостом
- Сообщения: 908
- Зарегистрирован: Вс май 23, 2010 13:55:42
- Откуда: Украина, Александрия
Re: CodeVision AVR в вопросах и ответах
Как их описывать? Объясните пожалуйста с маленьким примерчиком.ARV писал(а):в хидерах можно описывать только ССЫЛКИ на extern-переменные! такие ссылки по сути сделают ваши переменные ГЛОБАЛЬНЫМИ ДЛЯ ВСЕГО ПРОЕКТА
«И всё-таки она вертится!»
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Apparatchik писал(а):Как их описывать? Объясните пожалуйста с маленьким примерчиком.
вот здесь я весьма подробно объяснял товарищу, что и как следует и не следует делать в хидерах и модулях. рекомендую ознакомиться, а если останутся вопросы - тогда их и обсудим
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: CodeVision AVR в вопросах и ответах
Извините, может про это уже писали. Вообщем я создал проект с codevision avr. Есть ли руководство о том как просимулировать этот проект в vmlab?
- Apparatchik
- Держит паяльник хвостом
- Сообщения: 908
- Зарегистрирован: Вс май 23, 2010 13:55:42
- Откуда: Украина, Александрия
Re: CodeVision AVR в вопросах и ответах
Valek87 писал(а):Извините, может про это уже писали. Вообщем я создал проект с codevision avr. Есть ли руководство о том как просимулировать этот проект в vmlab?
http://www.123avr.com/
«И всё-таки она вертится!»
-
Импульс
- Потрогал лапой паяльник
- Сообщения: 349
- Зарегистрирован: Пн ноя 29, 2010 05:52:05
- Откуда: Иркутск
Re: CodeVision AVR в вопросах и ответах
http://www.123avr.com/[/quote]
Я собственно тоже начел вчера читать
микроконтроллеры AVR начинающим с нуля
Работаю по инструкции ,выполняю задания,пока получается.
И там есть программа VMLAB и она рабочая. В первом уроке там подробно описывается как надо с ней обращатся.
Я собственно тоже начел вчера читать
микроконтроллеры AVR начинающим с нуля
Работаю по инструкции ,выполняю задания,пока получается.
И там есть программа VMLAB и она рабочая. В первом уроке там подробно описывается как надо с ней обращатся.
-
Импульс
- Потрогал лапой паяльник
- Сообщения: 349
- Зарегистрирован: Пн ноя 29, 2010 05:52:05
- Откуда: Иркутск
Re: CodeVision AVR в вопросах и ответах
Уважаемые Радиокоты!
Скажите в какой программе можно посмотреть как реально горят светодиоды подключённые в микроконтроллеру.
Ведь прошивка написана,прокомпилирована,в мк зашита,как на мониторе пк визуально можно увидеть виртуальную работу моей прошивки со светодиодами .
Чтоб можно было поэксперементировать и наблюдать реально на мониторе.
Скажите в какой программе можно посмотреть как реально горят светодиоды подключённые в микроконтроллеру.
Ведь прошивка написана,прокомпилирована,в мк зашита,как на мониторе пк визуально можно увидеть виртуальную работу моей прошивки со светодиодами .
Чтоб можно было поэксперементировать и наблюдать реально на мониторе.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Импульс писал(а):Уважаемые Радиокоты!
Скажите в какой программе можно посмотреть как реально горят светодиоды подключённые в микроконтроллеру.
Ведь прошивка написана,прокомпилирована,в мк зашита,как на мониторе пк визуально можно увидеть виртуальную работу моей прошивки со светодиодами .
Чтоб можно было поэксперементировать и наблюдать реально на мониторе.
ISIS Proteus
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: CodeVision AVR в вопросах и ответах
Добрый день.
Начал осваивать CodeVision. Возникла необходимость считать данные с рабочего регистра в переменную, например int A = R15; Штудирование Helpа, копание в Google не дало результатов, нашел реализацию доступа к портам входа-выхода, доступ к специальным регистрам TCNTn, UDR, а к про рабочие что-то даже нигде не упоминается. Может кто сталкивался, дайте направление.
Начал осваивать CodeVision. Возникла необходимость считать данные с рабочего регистра в переменную, например int A = R15; Штудирование Helpа, копание в Google не дало результатов, нашел реализацию доступа к портам входа-выхода, доступ к специальным регистрам TCNTn, UDR, а к про рабочие что-то даже нигде не упоминается. Может кто сталкивался, дайте направление.

- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Cepera77 писал(а):Добрый день.
Начал осваивать CodeVision. Возникла необходимость считать данные с рабочего регистра в переменную, например int A = R15; Штудирование Helpа, копание в Google не дало результатов, нашел реализацию доступа к портам входа-выхода, доступ к специальным регистрам TCNTn, UDR, а к про рабочие что-то даже нигде не упоминается. Может кто сталкивался, дайте направление.
для чего вы взялись за Си, если лезете в РАБОЧИЕ РЕГИСТРЫ? Си для того и нужен, чтобы забыть про них!
чтобы в Си залезть в регистр R15, потребуется использовать ассемблерные вставки - ну так вы могли бы тогда Си и вообще не применять! вы вот задумайтесь - для чего вам это надо? Си и без вас с рабочими регистрами справится, а ваши попытки туда встрять скорее всего навредят, нежели помогут...
откажитесь от этого - и будет вам счастье.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: CodeVision AVR в вопросах и ответах
Дело в том, что в Asme я неплохо разбираюсь, но большие программы со сложными ветвлениями и математикой писать на ассемблере, достаточно утомительно, времени теряется уйма, да и из-за плохой наглядности в собственных программах бывает приходится разбираться часами, (для предотвращения пинания сразу оговорюсь, что это только мое мнение). Вот и возникла мысль разобраться с си, а наработки в asmе оформить в виде подпрограмм. Но получается, что мои asm подпрограммы оставляют результаты в регистрах, а выуживать их оттуда через стек не всегда удобно, присваивать регистру переменную типа register int A @ 15, это как то "через задницу".
Неужели нет реализации доступа к регистрам в CodeVision?
Неужели нет реализации доступа к регистрам в CodeVision?
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
рекомендую все-таки освоить Си в такой степени, чтобы не приходилось разбираться часами в своем собственном коде
это более продуктивный путь, нежели заниматься извратом с доступом к рабочим регистрам...
хотя, если очень хочется, можете попытаться найти информацию о том, как ваш компилятор работает с регистрами при передаче параметров в функции, или, возможно, есть документация об inline-assembler для вашего компилятора... такое решение возможно в принципе... но поверьте, это будет еще сильнее "через задницу"
хотя, если очень хочется, можете попытаться найти информацию о том, как ваш компилятор работает с регистрами при передаче параметров в функции, или, возможно, есть документация об inline-assembler для вашего компилятора... такое решение возможно в принципе... но поверьте, это будет еще сильнее "через задницу"
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: CodeVision AVR в вопросах и ответах
[quote="ARV"]рекомендую все-таки освоить Си в такой степени, чтобы не приходилось разбираться часами в своем собственном коде
Я говорил, что часами разбираться приходиться в ассемблерном коде, а в Си как раз все наглядно, я это понял с первой же своей программой.
И со своим вопросом кажется разобрался, спасибо за поддержку. Благодаря Вашему участию пришло осознание того, то "Через задницу" оказалось вполне работоспособно.
Итак присваиваем регистрам переменные например, мож кому сгодиться:
register int result_1 @ 11;
register int result_2 @ 12;
. . .
а в подпрограмме после того как получен результат
mov r12,r30 ; если в r30 и в r25 результаты
mov r11,r25
#endasm
}
Теперь мы имеем в переменных result_1 и result_2 значения регистров.
Благодарю
Я говорил, что часами разбираться приходиться в ассемблерном коде, а в Си как раз все наглядно, я это понял с первой же своей программой.
И со своим вопросом кажется разобрался, спасибо за поддержку. Благодаря Вашему участию пришло осознание того, то "Через задницу" оказалось вполне работоспособно.
Итак присваиваем регистрам переменные например, мож кому сгодиться:
register int result_1 @ 11;
register int result_2 @ 12;
. . .
а в подпрограмме после того как получен результат
mov r12,r30 ; если в r30 и в r25 результаты
mov r11,r25
#endasm
}
Теперь мы имеем в переменных result_1 и result_2 значения регистров.
Благодарю
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
проблема только в том, что если вдруг какая-то БИБЛИОТЕЧНАЯ функция тоже использует регистры R11 и R12, вы получите черти-что... а ведь такая неприятность может произойти как раз в тот момент, когда вы полностью уверовали в безгрешность своего подхода...
особенно с учетом того, что int это 2 байта, а R11 - это один байт... и что там компилятор будет делать с этим - еще надо разобраться
напрасно не желаете меня слушать... но дело ваше.
особенно с учетом того, что int это 2 байта, а R11 - это один байт... и что там компилятор будет делать с этим - еще надо разобраться
напрасно не желаете меня слушать... но дело ваше.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: CodeVision AVR в вопросах и ответах
.. ну на то это и ассемблер, правда иногда выручают макросы.Cepera77 писал(а):.. но большие программы со сложными ветвлениями и математикой писать на ассемблере, достаточно утомительно,
Если хотите разобраться - перечитайте хелп, ну и раз Вы неплохо знаете ассемблер - скомпилите С-исходнк и гляньте на листинг. Главное правило (ИМХО) - понять, как С использует регистры.
Код: Выделить всё
// PORTB,PinData - вход данных 74HC165
// PORTD,PinClk - вход Clock 74HC165
#pragma warn-
#pragma savereg-
// вывод на индикатор
OutLed(unsigned char led_sym){
#asm
ld r31,Y ; r31=led_sym
ldi r30,8
loop:
sbrc r31,0 ;
sbi PORTB,PinData ; вывод 1
sbrs r31,0 ;
cbi PORTB,PinData ; вывод 0
sbi PORTD,PinClk ; выдаем clock
cbi PORTD,PinClk ;
lsr r31 ; сдвиг
dec r30 ; повторяем 8 раз (1 байт)
brne loop
#endasm
}
#pragma savereg+
#pragma warn+
обращение из С-программы - OutLed(val);
Если что-то будет неясно, то приведу еще пару примеров.