Первые шаги в микроконтроллерах
|
|
| Пн, 23.09.2019, 09:39 | Сообщение # 271
|
nolpofaze
Постов: 442
Друзья |
sergeu15794, как-то не понятно вопрос звучит... Например вот содержимое хекса:
Код :020000020000FC :1000000012C018951895E0C01895189540C118951C :10001000D9C0EEC01895189518951895189518958B :1000220018951895E0E6F0E000270193F430E9F71F а что за цифры у Вас на входе????
|
|
| Ср, 05.02.2020, 12:59 | Сообщение # 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); } }
часть строк пока отключена. Когда получится взять правильно данные, можно уже говорить и о правильном соединении двух байт в слово...
|
|
| Ср, 05.02.2020, 22:50 | Сообщение # 273
|
msmmmm
Постов: 891
Друзья |
globusvrn1974, не вижу старта преобразования, только проверка ADSC.
|
|
| Чт, 10.09.2020, 19:05 | Сообщение # 274
|
transistor856
Постов: 628
Друзья |
ребят,а какая прога прошивальщик работает с ком портом,и чтоб в её списке микросхем была мега 328?а то в моей пони этой меги нет,а нужно прошить мегу в дип корпусе для ТТ
|
|
| Чт, 10.09.2020, 19:55 | Сообщение # 275
|
Fazotron
Постов: 849
Друзья |
Прошивал мегу 328 для прибора Понькой и залочил микроконтроллер.Методом проб вылечил другой программой.Если интересно,то посмотри мои посты в Лечение микроконтроллеров AVR.
|
|
| Чт, 10.09.2020, 20:12 | Сообщение # 276
|
transistor856
Постов: 628
Друзья |
Fazotron спасибо,посмотрю
|
|
| Чт, 10.09.2020, 20:23 | Сообщение # 277
|
vrytsev
Постов: 475
Друзья |
Цитата transistor856 ( ) списке микросхем была мега 328 UniProf
|
|
| Чт, 10.09.2020, 20:27 | Сообщение # 278
|
transistor856
Постов: 628
Друзья |
vrytsev а где её скачать можно?она у вас есть?
|
|
| Чт, 10.09.2020, 20:31 | Сообщение # 279
|
vrytsev
Постов: 475
Друзья |
В интернете. Есть но на компе, я с планшета.Добавлено (10.09.2020, 21:35) --------------------------------------------- На схем.нет и ещё много где.
|
|
| Чт, 10.09.2020, 20:39 | Сообщение # 280
|
transistor856
Постов: 628
Друзья |
а вас не затруднит её в архив сделать и скинуть сюда,когда будете за компом?
|
|