РАДИОСХЕМЫ



СТАРЫЙ ФОРУМ

Форум на ЭЛВО


РАДИОФОРУМЫ


СХЕМЫ И СТАТЬИ



Архив - только для чтения
Первые шаги в микроконтроллерах
Сообщение # 271        
nolpofaze
аватар
  Постов: 442   Друзья 
sergeu15794, как-то не понятно вопрос звучит...
Например вот содержимое хекса:
Код
:020000020000FC
:1000000012C018951895E0C01895189540C118951C
:10001000D9C0EEC01895189518951895189518958B
:1000220018951895E0E6F0E000270193F430E9F71F

а что за цифры у Вас на входе????
Сообщение # 272        
globusvrn1974
аватар
  Постов: 92   Друзья 
Прошу помощи сообщества!
Я учксь программировать ATtiny13. Уже получилось написать первую программу, зашить ее и увидеть моргающий светодиод. Теперь надо получить данные от АЦП. Но что-то не выходит. Подскажите, пожалуйста, где сидит козявка!
АЦП запускается разово, обработка прерываний не используется. Ловим бит завершения цикла преобразования

Код

#include <avr/io.h>
#define BitSet(x,y)  x|=(1 << y)
#define BitDrop(x,y)    x&=~(1 << y)

char AAA;

void Delay_us(int US)
{
for (int i = 0; i<=US; ++i)
{
asm("nop");
}
}
void Delay_ms(int MS)
{
for (int i = 0; i<=MS; ++i)
{
Delay_us(900);
}
}

char BitTest(unsigned aValue, unsigned aNumber)
{
if( aValue & (1 << aNumber)) {return(1);} else {return(0);}
}

char ReadAnalog(char pin)
{
BitDrop(ADMUX,MUX0);
BitDrop(ADMUX,MUX1);
switch (pin)
{
case 1:
{
BitSet(ADMUX,MUX0);
}
break;
case 2:
{
BitSet(ADMUX,MUX1);
}
break;
case 3:
{
BitSet(ADMUX,MUX0);
BitSet(ADMUX,MUX1);
}
break;
}
BitDrop(ADMUX,REFS0);    //    Vref = Vcc
BitSet(ADCSRA,ADLAR);    //    форматирование выходных данных левое
BitDrop(ADCSRA,ADIE);    //    не используем прерывания
BitDrop(ADCSRA,ADATE);    //
ADCSRA = (1 << ADPS2)|(1 << ADPS1)|(1 << ADPS0);    //    предделитель = 128
DIDR0 |= (1 << ADC3D); // запрещаем цифровой вход на ноге аналогового входа
BitSet(ADCSRA,ADEN);    //    включаем АЦП понеслась!
// Ждем окончания преобразования
while (BitTest(ADCSRA,ADSC) == 1);
char a = ADCH;
char b = ADCL;
BitDrop(ADCSRA,ADEN);    //    выключаем АЦП
return(a);
}

int main(void)
{
BitSet(DDRB,4);  // выход данных
BitDrop(DDRB,3);    // измеритель напряжения
while (1)
{
//моргаем светодиодом с частотой, пропорциональной данным от АЦП
AAA = ReadAnalog(3);
BitDrop(PORTB,4);    // выкл светодиод
Delay_ms(AAA);
BitSet(PORTB,4);    // вкл светодиод
Delay_ms(AAA);
}
}


часть строк пока отключена. Когда получится взять правильно данные, можно уже говорить и о правильном соединении двух байт в слово...
Сообщение # 273        
msmmmm
аватар
  Постов: 891   Друзья 
globusvrn1974, не вижу старта преобразования, только проверка ADSC.
Сообщение # 274        
transistor856
аватар
  Постов: 628   Друзья 
ребят,а какая прога прошивальщик работает с ком портом,и чтоб в её списке микросхем была мега 328?а то в моей пони этой меги нет,а нужно прошить мегу в дип корпусе для ТТ
Сообщение # 275        
Fazotron
аватар
  Постов: 849   Друзья 
Прошивал мегу 328 для прибора Понькой и залочил микроконтроллер.Методом проб вылечил другой программой.Если интересно,то посмотри мои посты в Лечение микроконтроллеров AVR.
Сообщение # 276        
transistor856
аватар
  Постов: 628   Друзья 
Fazotron спасибо,посмотрю
Сообщение # 277        
vrytsev
аватар
  Постов: 475   Друзья 
Цитата transistor856 ()
списке микросхем была мега 328

UniProf
Сообщение # 278        
transistor856
аватар
  Постов: 628   Друзья 
vrytsev а где её скачать можно?она у вас есть?
Сообщение # 279        
vrytsev
аватар
  Постов: 475   Друзья 
В интернете. Есть но на компе, я с планшета.

Добавлено (10.09.2020, 21:35)
---------------------------------------------
На схем.нет и ещё много где.

Сообщение # 280        
transistor856
аватар
  Постов: 628   Друзья 
а вас не затруднит её в архив сделать и скинуть сюда,когда будете за компом?
Поиск:

Внимание! Форум переехал на Tehnodium.ru



© 2010-2022 "Форум Радиосхемы". All Rights Reserved  Почта  PDA