Мелкие вопросы по МК и ПЛИС.
А так же кроме AREF и AVCC. 
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
- Реклама
хочу сделать емкостной сенсор как описано http://habrahabr.ru/post/111679/
схема
у себя использовал пин PINB1. В соответствии с алгоритмом, написал код:
однако значение емкости не изменяется и даже если резистор снимаю с +питание все равно не зависает в цикле, а показывает 47872. также соединял ножку с землей и все равно показывает не зацикливаясь 47872(т.к. PINB1=0(!))
уже не знаю что и делать...
схема

у себя использовал пин PINB1. В соответствии с алгоритмом, написал код:
Код: Выделить всё
volatile long unsigned int l;
SETBIT(DDRB,1);//на выход
CLEARBIT(PORTB,1);///->0
CLEARBIT(DDRB,1);///на вход
while(PINB1==0){l++;};
String1("Емкость = %u",l);//вывод на жк
уже не знаю что и делать...
В цикле не нужно задержку поставить?
Этот пост оказался полезен? Не поленись, нажми
слева!

Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
слева!Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
а зачем, она как раз таки не нужна, для более точного определения "времени" разряда задержка не требуется*Trigger* писал(а):В цикле не нужно задержку поставить?
в начале функции идет ее объявление, а это равносильно обнулениюЯ бы еще наверно в начале функции l обнулял... На всякий случай...
- Реклама
в том то и дело, что фактически весь код
Код: Выделить всё
while(1)
{
volatile long unsigned int l;
SETBIT(DDRB,1);//на выход
CLEARBIT(PORTB,1);///->0
CLEARBIT(DDRB,1);///на вход
while(PINB1==0){l++;};
String1("Емкость = %u",l);//вывод на жк
_delay_ms(1000);
//пояснение, само собой в шапке находится:
//#define LED1 0
//#define LED_PORT PORTB
LED_PORT ^=1<<LED1;
}
Блин, только сейчас внимание обратил
Куда подключена RC-цепочка и откуда читаем?
Куда подключена RC-цепочка и откуда читаем?
Он же написал:
Лютик писал(а):у себя использовал пин PINB1
Этот пост оказался полезен? Не поленись, нажми
слева!

Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
слева!Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Engineer_Keen писал(а):Блин, только сейчас внимание обратил![]()
Куда подключена RC-цепочка и откуда читаем?
*Trigger*, опоздалу себя использовал пин PINB1. В соответствии с алгоритмом, написал код:
п.с. если отсоединить цепочку, то девайс по-прежнему работает и выдает заветное число, даже не циклится, гад =(
А, ну да, проглядел. Но откуда берется число 47872? Раз оно !=0, значит цикл выполняется, но раз он выполняется, программа должна зависнуть при замыкании ноги на землю... Для чистоты эксперимента, приравняйте ее в начале к 0, хуже - то не станет...
Это BB00h, так что не самое обычное число.Engineer_Keen писал(а):Но откуда берется число 47872?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Это понятно, хотя если бы это было 65535, это бы не многое прояснило. Дайте чтоли HEX, в протеусе погонять...
HEX говорит об обратном... Там как минимум куча строковых констант и используется прерывание по приему USARTЛютик писал(а):в том то и дело, что фактически весь код
да, есть прерывание, но так я же ничего не шлю в этот момент, поэтому и исключаю егоEngineer_Keen писал(а):HEX говорит об обратном... Там как минимум куча строковых констант и используется прерывание по приему USARTЛютик писал(а):в том то и дело, что фактически весь код
забыл 8Мгц частота
Ну так надо было выложить весь, от первого #include до последней "}". Вот у меня он завис в симуляторе и даже до самой проверки емкости не дошел, а я даже понять не могу, где в исходном коде это место.
странно, но на самом деле эмулятор на то и эмулятор, вполне возможно, что он глючит.
скинул проект в avr studio, сильно не пинайте, там много не задействованного кода, так как тестовый проект(разбираюсь с avr'ками, rtc'шками...)
скинул проект в avr studio, сильно не пинайте, там много не задействованного кода, так как тестовый проект(разбираюсь с avr'ками, rtc'шками...)
- Вложения
-
- main.rar
- (50.63 КБ) 133 скачивания
Компилятор упорно игнорирует строку "while(PINB1==0){l++;};", он ее просто не преобразует в машинный код, а вот строка
"while((PINB & (1<<PB1))==0){l++;};" замечательно переводится в
"while((PINB & (1<<PB1))==0){l++;};" замечательно переводится в
Код: Выделить всё
+000000DF: 8189 LDD R24,Y+1 Load indirect with displacement
+000000E0: 819A LDD R25,Y+2 Load indirect with displacement
+000000E1: 81AB LDD R26,Y+3 Load indirect with displacement
+000000E2: 81BC LDD R27,Y+4 Load indirect with displacement
+000000E3: 9601 ADIW R24,0x01 Add immediate to word
+000000E4: 1DA1 ADC R26,R1 Add with carry
+000000E5: 1DB1 ADC R27,R1 Add with carry
+000000E6: 8389 STD Y+1,R24 Store indirect with displacement
+000000E7: 839A STD Y+2,R25 Store indirect with displacement
+000000E8: 83AB STD Y+3,R26 Store indirect with displacement
+000000E9: 83BC STD Y+4,R27 Store indirect with displacement
+000000EA: 9BB1 SBIS 0x16,1 Skip if bit in I/O register set
+000000EB: CFF3 RJMP PC-0x000C Relative jump
- Сообщения: 3
- Зарегистрирован: Чт мар 22, 2012 22:20:02
Добрый вечер. Есть такой вопрос: можно ли с помощью STK-500 программировать микроконтроллер ATtiny 2313-20PU?
В описании на STK его в списке возможных программируемых МК нет. Если попытаться все таки его запрограммировать на сколько можно надеяться на корректную запись кода?
Прошивка на STK 2.0A AVR Studio версия 4.12.
В описании на STK его в списке возможных программируемых МК нет. Если попытаться все таки его запрограммировать на сколько можно надеяться на корректную запись кода?
Прошивка на STK 2.0A AVR Studio версия 4.12.


