Котуинко

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

[uquote="ARV",url="/forum/viewtopic.php?p=4223078#p4223078"]все указатели до разыменовпния одинаковы.[/uquote]Вообще говоря, это не так. Возьмём хорошо знакомый вам AVR. Указатели на область данных и программ это две большие разницы. Не говоря уже о том, что в области данных тоже "особенности" есть.
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18787
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

VladislavS писал(а):Указатели на область данных и программ это две большие разницы
я сейчас приведу в виде бинарных значений два указателя, один на ОЗУ, другой на FLASH, прошу вас определить, где указатель на область ОЗУ, а где - на FLASH:
1. 0x0100
2. 0x0102
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

Мне некогда соревноваться с вами в демагогии. Просто положу тут кусочек документации по указателям от IAR AVR.
EWAVR_CompilerGuide_Pointers.pdf
(61.54 КБ) 209 скачиваний
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18787
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

ну так я не про костыли говорил, кои и в GCC есть, а про то, как указатели определяет стандарт Си. в кейле для 51-ых есть битовые переменные, которых нет в стандарте, и что из этого? (кстати, интересно: указатели на них в кейле есть?) пока вы не начнете реализовывать доступ к данным по указателю, у вас нет стандартного способа узнать, в чем отличие одного от другого. а доступ и называется разыменовыванием.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

Давно заметил, что те кто апеллируют к стандарту, обычно его даже не открывали. Почитайте раздел 6.3.2.3 Pointers и откройте для себя, что приведения с указателями являются implementation-defined. И то что вы называете костылями всего лишь их реализация на конкретной архитектуре.
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18787
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

ну... стандарт-то открывал... местами, конечно. до "implementation defined" не дошел, хватило прочтенного утверждения о совпадении размера с int.

что ж... лишний раз убедился, что ничему верить нельзя.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15789
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Ладушки...
"дело ясное, что дело темное"...
8)
Пока что очередное "устройство" в мой садомазохстский проектик добавилось - "секундомер"...
Штука без субменюшек - в них смысла нету в данном случае, но с некоторым "запасом на будущее".
Переход - в окне главного меню - ставим единичку
https://img.radiokot.ru/files/20529/2sa5lyps1v.jpg
жмем красну кнопу и на дисплейчике заставка
https://img.radiokot.ru/files/20529/2sa5mj9ttl.jpg
Далее кнопа "+" выполняет функционал "старт/стоп" (при счете "квадратик" вверху, при останове - внизу)
https://img.radiokot.ru/files/20529/2sa5my1djl.jpg
кнопа "-" ="сброс показаний", а кнопа ">" - запись текущего результата в дополнительные регистры (сопровождаемую миганием синим "умного светика").
Из того же состояния останова при помощи RK можно войти в главное меню и там ссменить текущее "устройство по умолчанию" пока что на часики ("F00")...
Папка проекта и файлы имеют те же имена, что и предыдущие (но отличаются по содержимому)- посему соблюдаем аккуратность при распаковке!
(старый проект может быть "затерт")
prvt2.zip
(69.14 КБ) 150 скачиваний
:write:
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1394
Зарегистрирован: Чт авг 21, 2014 11:11:48
Откуда: краснодарский край

Сообщение главный колбасист »

А я вон чё придумала...
Не смейтесь только,я больше
ничего пока не умею. :oops:

#include <avr/io.h>

#include <avr/interrupt.h>


char main(x,y){
x=x+2>>y;
sei();
DDRD=(PD0+x ) ;
TIMSK=(TOIE0+1);
TCCR0=(CS00+1);

while(1,x){;}
}
Изображение
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

Это на конкурс "кто больше ошибок в одной строке кода сделает"?
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1394
Зарегистрирован: Чт авг 21, 2014 11:11:48
Откуда: краснодарский край

Сообщение главный колбасист »

Возможно. но в симуляторе работает...
Далее
C:\Program Files\Atmel\AVR Tools\AVR Toolchain
А вот и нету в моей древней avr studio4 такой папки.
Ну и ладно,фиг с ним. Все равно,если бы и нашел,ничего там не понял.
Это и к лучшему.

з.ы. http://www.spectrum-soft.com/download/download.shtm
Дали ссылку на симулятор схем на одном вражеском форуме,сказали лучше,
современнее,чем мой мультисим. правда? но что то архив больно маленький.
мультисимовский больше раз в десять.
Контактная информация:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18787
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

ну ладно, стандарт даже я ниасилил, но книжку-то популярную про AVR и Си прочесть можно же? ну, хотя бы для того, чтобы запомнить, что main имеет тип int...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

"main имеет тип int" - звучит как сюжет порнофильма :)))
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1394
Зарегистрирован: Чт авг 21, 2014 11:11:48
Откуда: краснодарский край

Сообщение главный колбасист »

там был int ,поначалу, потом ставлю все подряд,посмотреть что изменится.
Увлекательнее,чем книжку читать,и в памяти откладывается лучше.
Ничего не изменилось,ошибок нет. и считает. :)
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 15789
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Скорее всего сообщения об ошибках отключены в настройках IDE.
8)
С АВРками начинать Си осваивать проще таки с абдуринкоIDE, а уж дальше по мере аппетита можно и к студиеву Си перейти.
Так хоть явные ошибки пользователя отсеять можно. Да и возможностей для практических конструкций вполне достаточно.
8)
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18787
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

[uquote="VladislavS",url="/forum/viewtopic.php?p=4228601#p4228601"]"main имеет тип int" - звучит как сюжет порнофильма :)))[/uquote]
так Си это сплошная e#ля с греблей
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1394
Зарегистрирован: Чт авг 21, 2014 11:11:48
Откуда: краснодарский край

Сообщение главный колбасист »

Бывают среды разработки не такие привередливые,как например AVRstudio, где закорючку не там поставишь,и пол-дня выискиваешь откуда ошибки.Чтобы больше времени уделять самому алгоритму,
и собственно творческому процессу,а не синтаксису,и какую закорючку где ставить?
Я понимаю,когда большой опыт,и до автоматизма доходит,это не столь важно.
Вот была такая хрень,"алгоритм бульдер" незаслуженно забытый ?
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 15789
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Практически в любой IDE есть опция контроля ошибок.
После установки выпадает список того, что устранить требуется - всего-то пройтись по исходнику и поправить.
Синтаксис в Си/С++ штука весьма значимая - раз влез в данные ЯВУ - изучай и запоминай!
8)
Я в адуринке включил "файл-настройки-сообщения компилятора - ВСЕ" и весьма тому доволен.
Большинство простейших и все некорректные конструкции заранее указывает.
:hunger:
Друг Кота
Аватара пользователя
Сообщения: 15789
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Наконец таки испекся практически полный аналог КР145ИК1901 на ардуинке.
Схемка макетки
https://img.radiokot.ru/files/20529/2tic4f218y.GIF
Собственно моя версия макета из "подручных кубиков"
https://img.radiokot.ru/files/20529/2tic3k8gq1.jpg
Собственно сам СКОТч:
prvtm.zip
(102.23 КБ) 134 скачивания
Исходник с самодельной библиотечкой для дисплея на MAX7219 лежит в папке max72m.
Его надо перекинуть в соответствующий раздел IDE перед запуском компиляции.
Размер конечно жутковатый - результат компиляции под 10 килобайт, менюшкины экраны весьма примитивны - но то ужшшш...возможности дисплея...
Система без RTC на собственном источнике тактирования.
Вот тут более серъезная проблема.
Основной генератор (на основе прерывания SIGNAL(TIMER0_COMPA_vect) ), как оказалось таки дает суточное отклонение (хотя и стабильное)...
Второй вариант - тактирование часов от INT0/INT1+ tone позволяет сделать коррекцию.
Но там вылазит нестабильность при одновременной работе главных часов и кого-то из секундомера/таймера.
Так что все же лучше (при необходимости) запускать часики от RTC.
Ранние конструкции под ассемблером такой пакостью не страдали - но... там я абсолютно владел структурой программы, а в данном случае специально ограничивался рамками "референса".
Касательно функционала самого устройства -
главные часы (настройка часов, минут, пуск секундомера и корректор точности хода);
секундомер;
таймер обратного отсчета с возможностью ввода уставки (до 99 часов 59 минут);
два будильника с раздельной установкой времени, разрешения и активного уровня на выходе;
ну и там еще 4 свободных места под.... фантазию пользователя.
Из режима индикации главных часов возможно отключение активированного выхода будильника...
УФФ...
Описание работы с менюшками для пользователя отдельно попозже постараюсь нашкрябать, ежли настроение творческо посетит...
:beer:
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1394
Зарегистрирован: Чт авг 21, 2014 11:11:48
Откуда: краснодарский край

Сообщение главный колбасист »

[uquote="BOB51",url="/forum/viewtopic.php?p=4242190#p4242190"]Ранние конструкции под ассемблером такой пакостью не страдали - но... там я абсолютно владел структурой программы, а в данном случае специально ограничивался рамками "референса".[/uquote]
Я бы обязательно ответил,или чё нибудь посоветовал,но я ничего в этом не понимаю.

А почему программа крутится в первой части (х) ,хотелось чтобы она переходила через некоторое количество циклов на вторую часть. А потом опять возвращалась...
#include <avr/io.h>

#include <avr/interrupt.h>

float x;
float y;

int main(x){
x=x+3;
sei();
DDRD=(PD0+1);
TIMSK=(TOIE0+1);
TCCR0=(CS00+1);
PIND=(PD0+x);

while(1,x){;}
}

int main1(y){
y=y+3;
sei();
DDRD=(PD0+1);
TIMSK=(TOIE0+1);
TCCR0=(CS00+1);
PIND=(PD0+y);
while(1,y){;}
}
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 15789
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

while(1){} = вечный цикл
что такое
while(1,x){} как-то совершенно непонятно...
8)
Ответить

Вернуться в «Разные вопросы по МК»