Котуинко
- Сообщения: 2567
- Зарегистрирован: Вт май 01, 2018 19:44:47
[uquote="ARV",url="/forum/viewtopic.php?p=4223078#p4223078"]все указатели до разыменовпния одинаковы.[/uquote]Вообще говоря, это не так. Возьмём хорошо знакомый вам AVR. Указатели на область данных и программ это две большие разницы. Не говоря уже о том, что в области данных тоже "особенности" есть.
- Реклама
я сейчас приведу в виде бинарных значений два указателя, один на ОЗУ, другой на FLASH, прошу вас определить, где указатель на область ОЗУ, а где - на FLASH:VladislavS писал(а):Указатели на область данных и программ это две большие разницы
1. 0x0100
2. 0x0102
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 2567
- Зарегистрирован: Вт май 01, 2018 19:44:47
Мне некогда соревноваться с вами в демагогии. Просто положу тут кусочек документации по указателям от IAR AVR.
ну так я не про костыли говорил, кои и в GCC есть, а про то, как указатели определяет стандарт Си. в кейле для 51-ых есть битовые переменные, которых нет в стандарте, и что из этого? (кстати, интересно: указатели на них в кейле есть?) пока вы не начнете реализовывать доступ к данным по указателю, у вас нет стандартного способа узнать, в чем отличие одного от другого. а доступ и называется разыменовыванием.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 2567
- Зарегистрирован: Вт май 01, 2018 19:44:47
Давно заметил, что те кто апеллируют к стандарту, обычно его даже не открывали. Почитайте раздел 6.3.2.3 Pointers и откройте для себя, что приведения с указателями являются implementation-defined. И то что вы называете костылями всего лишь их реализация на конкретной архитектуре.
- Реклама
ну... стандарт-то открывал... местами, конечно. до "implementation defined" не дошел, хватило прочтенного утверждения о совпадении размера с int.
что ж... лишний раз убедился, что ничему верить нельзя.
что ж... лишний раз убедился, что ничему верить нельзя.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Ладушки...
"дело ясное, что дело темное"...
Пока что очередное "устройство" в мой садомазохстский проектик добавилось - "секундомер"...
Штука без субменюшек - в них смысла нету в данном случае, но с некоторым "запасом на будущее".
Переход - в окне главного меню - ставим единичку
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")...
Папка проекта и файлы имеют те же имена, что и предыдущие (но отличаются по содержимому)- посему соблюдаем аккуратность при распаковке!
(старый проект может быть "затерт")
"дело ясное, что дело темное"...
Пока что очередное "устройство" в мой садомазохстский проектик добавилось - "секундомер"...
Штука без субменюшек - в них смысла нету в данном случае, но с некоторым "запасом на будущее".
Переход - в окне главного меню - ставим единичку
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")...
Папка проекта и файлы имеют те же имена, что и предыдущие (но отличаются по содержимому)- посему соблюдаем аккуратность при распаковке!
(старый проект может быть "затерт")
А я вон чё придумала...
Не смейтесь только,я больше
ничего пока не умею.
#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){;}
}

Не смейтесь только,я больше
ничего пока не умею.
#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
Возможно. но в симуляторе работает...
Ну и ладно,фиг с ним. Все равно,если бы и нашел,ничего там не понял.
Это и к лучшему.
з.ы. http://www.spectrum-soft.com/download/download.shtm
Дали ссылку на симулятор схем на одном вражеском форуме,сказали лучше,
современнее,чем мой мультисим. правда? но что то архив больно маленький.
мультисимовский больше раз в десять.
А вот и нету в моей древней avr studio4 такой папки.Далее
C:\Program Files\Atmel\AVR Tools\AVR Toolchain
Ну и ладно,фиг с ним. Все равно,если бы и нашел,ничего там не понял.
Это и к лучшему.
з.ы. http://www.spectrum-soft.com/download/download.shtm
Дали ссылку на симулятор схем на одном вражеском форуме,сказали лучше,
современнее,чем мой мультисим. правда? но что то архив больно маленький.
мультисимовский больше раз в десять.
ну ладно, стандарт даже я ниасилил, но книжку-то популярную про AVR и Си прочесть можно же? ну, хотя бы для того, чтобы запомнить, что main имеет тип int...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 2567
- Зарегистрирован: Вт май 01, 2018 19:44:47
там был int ,поначалу, потом ставлю все подряд,посмотреть что изменится.
Увлекательнее,чем книжку читать,и в памяти откладывается лучше.
Ничего не изменилось,ошибок нет. и считает.
Увлекательнее,чем книжку читать,и в памяти откладывается лучше.
Ничего не изменилось,ошибок нет. и считает.
Скорее всего сообщения об ошибках отключены в настройках IDE.
С АВРками начинать Си осваивать проще таки с абдуринкоIDE, а уж дальше по мере аппетита можно и к студиеву Си перейти.
Так хоть явные ошибки пользователя отсеять можно. Да и возможностей для практических конструкций вполне достаточно.

С АВРками начинать Си осваивать проще таки с абдуринкоIDE, а уж дальше по мере аппетита можно и к студиеву Си перейти.
Так хоть явные ошибки пользователя отсеять можно. Да и возможностей для практических конструкций вполне достаточно.
[uquote="VladislavS",url="/forum/viewtopic.php?p=4228601#p4228601"]"main имеет тип int" - звучит как сюжет порнофильма
[/uquote]
так Си это сплошная e#ля с греблей
так Си это сплошная e#ля с греблей
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Бывают среды разработки не такие привередливые,как например AVRstudio, где закорючку не там поставишь,и пол-дня выискиваешь откуда ошибки.Чтобы больше времени уделять самому алгоритму,
и собственно творческому процессу,а не синтаксису,и какую закорючку где ставить?
Я понимаю,когда большой опыт,и до автоматизма доходит,это не столь важно.
Вот была такая хрень,"алгоритм бульдер" незаслуженно забытый ?
и собственно творческому процессу,а не синтаксису,и какую закорючку где ставить?
Я понимаю,когда большой опыт,и до автоматизма доходит,это не столь важно.
Вот была такая хрень,"алгоритм бульдер" незаслуженно забытый ?
Практически в любой IDE есть опция контроля ошибок.
После установки выпадает список того, что устранить требуется - всего-то пройтись по исходнику и поправить.
Синтаксис в Си/С++ штука весьма значимая - раз влез в данные ЯВУ - изучай и запоминай!
Я в адуринке включил "файл-настройки-сообщения компилятора - ВСЕ" и весьма тому доволен.
Большинство простейших и все некорректные конструкции заранее указывает.

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

Схемка макетки
https://img.radiokot.ru/files/20529/2tic4f218y.GIF
Собственно моя версия макета из "подручных кубиков"
https://img.radiokot.ru/files/20529/2tic3k8gq1.jpg
Собственно сам СКОТч: Исходник с самодельной библиотечкой для дисплея на MAX7219 лежит в папке max72m.
Его надо перекинуть в соответствующий раздел IDE перед запуском компиляции.
Размер конечно жутковатый - результат компиляции под 10 килобайт, менюшкины экраны весьма примитивны - но то ужшшш...возможности дисплея...
Система без RTC на собственном источнике тактирования.
Вот тут более серъезная проблема.
Основной генератор (на основе прерывания SIGNAL(TIMER0_COMPA_vect) ), как оказалось таки дает суточное отклонение (хотя и стабильное)...
Второй вариант - тактирование часов от INT0/INT1+ tone позволяет сделать коррекцию.
Но там вылазит нестабильность при одновременной работе главных часов и кого-то из секундомера/таймера.
Так что все же лучше (при необходимости) запускать часики от RTC.
Ранние конструкции под ассемблером такой пакостью не страдали - но... там я абсолютно владел структурой программы, а в данном случае специально ограничивался рамками "референса".
Касательно функционала самого устройства -
главные часы (настройка часов, минут, пуск секундомера и корректор точности хода);
секундомер;
таймер обратного отсчета с возможностью ввода уставки (до 99 часов 59 минут);
два будильника с раздельной установкой времени, разрешения и активного уровня на выходе;
ну и там еще 4 свободных места под.... фантазию пользователя.
Из режима индикации главных часов возможно отключение активированного выхода будильника...
УФФ...
Описание работы с менюшками для пользователя отдельно попозже постараюсь нашкрябать, ежли настроение творческо посетит...
[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){;}
}


