Код: Выделить всё
CLK->PCKENR2 |= CLK_PCKENR2_ADC1; //Тактирование
Код: Выделить всё
CLK->PCKENR2 |= CLK_PCKENR2_ADC1; //Тактирование
Ну так почитайте чужие http://cppstudio.com/post/5377/king-live писал(а):ни где в моих учебниках нет такой конструкции "->"
Код: Выделить всё
ADCSRA|=(1<<ADEN); // АЦП включён
вот именно сейчас они вам очень нужны, потому что для выбранного вами МК без них просто невозможно обойтись.king-live писал(а):И вот после понятия что и к чему и для чего эти указатели, понял что в предыдущих моих проектах они действительно не нужны были (проекты все на AVR Atmega,Attiny). И уверяю и сейчас они мне не нужны. Но!!!!! Вот теперь как мне обойти этот "->" ? В данном случае связанное с работой АЦП.
Как то в прошлом, один дядька программист (очень мудрый программист, ходячая энциклопедия) на мои дотошные распросы вот типа таких, сказал очень умные слова. - Чем меньше знаешь, тем крепче спишь! Я сначала не понял его слов и даже обиделся немного! Но когда он мне объяснил что он этим хотел сказать, я для себя открыл путь обсалютно не логичный и не понятный скажем для 99% программистов. Но этот путь стал самым эфективным для понятия мира программирования микроконтроллеров в плане производства. Он сказал следующее -ты новичок, скажем маленький ребёнок и поэтому объясню тебе на "пальцах". Вот предположем у тебя есть машина и называется она ADCSRA. У неё есть двери(ADEN) колёса(ADSC) руль(ADIF) коробка передач(ADMUX), магнитафон и т.п, и т.д...... Это "игра в ассоциации" И вот зачем тебе знать конструкцию двери из чего оно сделанно, если тебе только надо её открыть. (лишняя информация!!!!) зачем нужно знать как устроенно колесо если нужно просто чтобы оно вращалось(лишняя информация!!!!!) зачем нужно знать как устроенна коробка передач, если мне нужно просто переключать скорости, то есть менять входные каналы портов в МК(опять же лишняя информация!!!!!) И вот действительно, каждый из нас пользуется тем, что уже предоставленно кем то специально для пользования! И вот вопрос: Какой из 2-х людей действует эффективнее и увереннее в жизни, если им сейчас дать одинаковое задание к примеру съесть яблоко? Один просто возьмёт яблоко съест его не раздумывая(так как в памяти сидит информация что это еда, вкусная и его можно есть) и пойдёт по своим делам. А второй сначала вспомнит ботанику, химию, разабъёт всё яблоко по структуре до кожуры и косточек, начнёт вспоминать как оно на вкус кислое или сладкое и сделает как и первый человек, он его съест......, а может и не съест!!!!!!А что такое ADCSRA в Вашем примере Вам известно?
это от части верно! Задачи логического уровня, которые решаются обычными логическими микросхемами. Но зачем тратить 2 месяца на разработку устройства на логике если за час можно собрать на микроконтроллере. И потом чтобы прочесть уровень АЦП на ноге контроллера и в зависимости от него что то где то включить или выключить указатели не нужны. Нужна только правильная логика! А к STM8 перешёл пото му что нужны 20 каналов АЦПи они дешевле оптом чем к примеру Attiny828. Я занимаюсь серийным оборудованием, а количество не маленькое. В год порядком 20 000 микросхем программируем под разные устройства и для дома и для промышленности! Спасибо за помощь, придётся изучать указатели, всё равно когда то пришёл бы к этому.то, что вам были "не нужны" указатели, свидетельствует лишь о крайней примитивности решаемых задач. ну или о крайне малом опыте программирования.
А стоил ли? сон не пропадет?king-live писал(а): придётся изучать указатели, всё равно когда то пришёл бы к этому.
king-live писал(а): сказал очень умные слова. - Чем меньше знаешь, тем крепче спишь!,
и сон пропадет, и седина появится... многие знания - многие печали...optima писал(а):А стоил ли? сон не пропадет?
king-live писал(а): сказал очень умные слова. - Чем меньше знаешь, тем крепче спишь!,
Элементарно:ARV писал(а): без указателей работать со строками?
Код: Выделить всё
char str[] = "abc";
bool contains(char str[], int len, char c)
{
for(int i=0; i<len; i++)
{
if(str[i]==c)
return true;
}
return false;
}
Не например так.ARV писал(а): пересылать более 4 байтов?
Код: Выделить всё
struct A
{
uint32_t a;
uint32_t b;
uint32_t c;
};
struct A s1, s2;
s1 = s2;
Можно по значению передавать. Получится функциональное программированиеARV писал(а): передавать в функции структуры?
Просто считайте, что в некоторых контроллерах вместо ADCSRA нужно писать секретную комбинацию ADC->SRA. И снова забудьте про указатели, до поры до времени.king-live писал(а):Вот к примеру в студии писал под мегу8 (работа с битом "регистром" ADEN)
Код:
ADCSRA|=(1<<ADEN); // АЦП включён
Всё понятно и просто! Работа с 1 битом регистра ADCRA.
Код: Выделить всё
TCNT0 = 0;
TCNT2 = 0;
Код: Выделить всё
TIM1->CNT = 0;
TIM2->CNT = 0;
А это как раз выход из не понятной ситуации! Спасибо всем за помощь!Мысленно поверните стрелку в обратную сторону и она Вам покажет путь истинный , или хотя бы к какому "блоку" контроллера Вы обращаетесь.