|
Первые шаги в микроконтроллерах
|
|
| | Сообщение # 261
|
aleksanderhaitrov11
Постов: 5
ОК |
Добрый день, помогите советом с чего начать? есть датчик в машине, который выдает 0.4-1 вольт. Мне нужно научится програмировать какую-нибудь микросхему, которая будет получать на вход показания этого датчика и выдавать немного скорректированное напряжение. Типа "если на вход подается напряжение 0.4, тогда на выход подать напряжение 0.6 если на вход подается напряжение 0.5, тогда на выход подать напряжение 0.65" и т.д. Куда копать, с чего начать? ничего сложнее заливания прошивки на микрухи в кассах я не пробовал
|
|
| | Сообщение # 262
|
булат
Постов: 554
Друзья |
Взять например атмега8(любую с ацп),измеряем вх напряжение,вычисляем и выводим на выход-можно шим,но проще постую цепь цап на R-2R
|
|
|
| | Сообщение # 264
|
evgen87
Постов: 358
Друзья |
Кто силён в picbasic подскажите как это зашить в pic16f628
My WebPage
|
|
| | Сообщение # 265
|
GRAB9142
Постов: 175
Х |
Цитата mjsalnikov (  ) вроде бывают какие то шняжки NE555
|
|
| | Сообщение # 266
|
mongol791
Постов: 128
Друзья |
Подскажите как PicKit 3 прошить ATXMega32. в описание должен шить в меню програмы нету такого. может кто знает?
|
|
| | Сообщение # 267
|
Denhik019
Постов: 174
ОК |
mongol791 Где то я встречал описание,попробую найти.Добавлено (03.01.2019, 18:43) --------------------------------------------- mongol791, Вбей в поисковике Pickit2 И Avr.
|
|
| | Сообщение # 268
|
sergeu15794
Постов: 65
U |
скажите как из цыфр зделать НЕХ файл
|
|
| | Сообщение # 269
|
nolpofaze
Постов: 442
Друзья |
sergeu15794, как-то не понятно вопрос звучит... Например вот содержимое хекса:
Код :020000020000FC :1000000012C018951895E0C01895189540C118951C :10001000D9C0EEC01895189518951895189518958B :1000220018951895E0E6F0E000270193F430E9F71F а что за цифры у Вас на входе????
|
|
| | Сообщение # 270
|
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); } }
часть строк пока отключена. Когда получится взять правильно данные, можно уже говорить и о правильном соединении двух байт в слово...
|
|