Перейти к содержанию

boogoo

Members
  • Постов

    12
  • Зарегистрирован

  • Посещение

Электроника

  • Стаж в электронике
    Не связан с электроникой

Посетители профиля

1 255 просмотров профиля

Достижения boogoo

Новобранец

Новобранец (2/14)

  • Преданный
  • 10 постов на форуме
  • Неделя на форуме
  • Месяц на форуме
  • Год на форуме

Последние значки

0

Репутация

  1. Работает ли PayPal в России 2022 На данный момент сервисы PayPal заблокированы, деятельность приостановлена.17 нояб. 2022 г.
  2. Могу написать прошивку, хочу за это 500 рублей, писать буду 1-3 дня. За дополнительную 1000 руб. (не считая расходов на почту) отправлю почтой готовую платку с уже прошитым микроконтроллером. (8-922-16-26-926 с вацапом или звонком реагирую быстрее).
  3. boogoo

    логи uart

    Буду использовать флешку, в интернете и в правду куча примеров... спасибо за совет
  4. boogoo

    логи uart

    Здравствуйте, есть некое устройство которое передает данные по uart. Собственно я хочу сохранять эти данные используя микроконтроллер ...Может кто нибудь с этим встречался? Есть ли ссылки на информацию по этому поводу?
  5. И за это спасибо ...я совсем зеленый ...отладку не умею делать ...и опять немного глупых вопросов 1. В протеусе можно шагать по коду ...а можно ли в нем следить за переменными и вносить свои числа в неё? 2.Ну и если поделитесь пример (ссылка) на информацию по отладки из кодевижена на средствах атмел студио 6 или 7 буду рад (у меня из кодевижена прыгает только в 4.19 atmel studio) или намек на другую программу(мы) для отладки кода после кодевижена ...тоже буду рад!
  6. Здравствуйте, хочу создать включение отключение света по двум хлопкам ...В интернете заказал микрофонный датчик на компараторе (даёт логический 1 при громком звуке), пока датчик едет решил создать прошивку (attiny13 в codevision). Создал прерывание по таймеру куда записывает сколько ms прошло, и прерывание по внешнему выводу int0 записывая в переменную d++ (куда хочу подцепить датчик). прерывания по микрофону (d=0) начальная стадия ...кода нет, мк считает свои ms и скидывает в основном цикле при достижении 700 ms. (d=1) При первом прерывании датчика обнуляем насчитанное ms до нуля, и ждём второго прерывания, не ранее чем через 700 мс (после этого времени в основном цикле сбрасываю d=0 во избежании случайного срабатывания по постороннему шуму = если микрофонный датчик дергает ногу по шуму) (d=2) если ms прошло больше 200 и меньше 600 инвертируем одну из ног микроконтроллера (включаем или выключаем свет) В основной программе после любого прерывания через 700 мс скидываю переменную d в начальное состояние d=0. Суть при реальном симулировании (тыкая на кнопку) и виртуальном бит не инвертируется (свет не включается) есть подозрения что ошибся в этой строчке /* case 2: //если d=2 и ms больше 200 и меньше 600 инвентируем порт 4 if (ms>=200 && ms<=600) { PORTB.4=~PORTB.4; } else { d=0; }; */ Прошу помочь найти ошибку или подсказать что следует изменить. //////////////////////////////НИЖЕ КОД////////////////////////////////////// #include <tiny13a.h> int ms,d; interrupt [EXT_INT0] void ext_int0_isr(void) { d++; //добавляем d еденицу при прерывании switch (d) { case 0: //если d=0 бездельничаем break; case 1: //если d=1 ставим переменную в ms в 0 (если ms превысит 700 в основном цикле скинем d на 0 // и снова бездельничаем) ms=0; break; case 2: //если d=2 и ms больше 200 и меньше 600 инвентируем порт 4 if (ms>=200 && ms<=600) { PORTB.4=~PORTB.4; } else { d=0; }; break; default: d=0; //на волшебный случай если d насчитал больше 2 }; } interrupt [TIM0_OVF] void timer0_ovf_isr(void) //прерывание по таймеру добавляет 1 мс в переменную мс { ms++; TCNT0=0x6A; } void main(void) { CLKPR=(1<<CLKPCE); CLKPR=(0<<CLKPCE) | (0<<CLKPS3) | (0<<CLKPS2) | (0<<CLKPS1) | (0<<CLKPS0); DDRB=(0<<DDB5) | (1<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0); PORTB=(0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0); TCCR0A=(0<<COM0A1) | (0<<COM0A0) | (0<<COM0B1) | (0<<COM0B0) | (0<<WGM01) | (0<<WGM00); TCCR0B=(0<<WGM02) | (0<<CS02) | (1<<CS01) | (1<<CS00); TCNT0=0x6A; OCR0A=0x00; OCR0B=0x00; TIMSK0=(0<<OCIE0B) | (0<<OCIE0A) | (1<<TOIE0); GIMSK=(1<<INT0) | (0<<PCIE); MCUCR=(1<<ISC01) | (1<<ISC00); GIFR=(1<<INTF0) | (0<<PCIF); ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIS1) | (0<<ACIS0); ADCSRB=(0<<ACME); DIDR0=(0<<AIN0D) | (0<<AIN1D); ADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (0<<ADPS1) | (0<<ADPS0); #asm("sei") while (1) { if (ms<=700) //после первого прерывания на int обнуляем мс и если он досчитает до 700 скидываем d //ну и постоянно скидываем d в ноль чтобы начинать счет от датчика с начала { d=0; } } }
  7. Спасибо, хотел сделать устройство которое включается раз в сутки на пару минут (насос для растений) и уже сделал - вот код (частоту поставил 9600000 для более точного хода attiny13). При включении через 288 минут (4,8 часа) включается нога (светодиод) через 4.8 ещё одна нога и т.д. спустя 24 часа (+-5%) включается порт соединенный с реле на 2 минуты, после все в ноль и заново. Просто не знал про for... Читаю досуге.... #define F_CPU 9600000L #include <avr/io.h> #include <util/delay.h> unsigned int i; #define min (_delay_ms(60000)) int main(void) { DDRB = 0xFF; PORTB = 0x00; while (1) { for(int i = 0; i < 288; i++) { min; } PORTB |= (1<<0); //1 лампа for(int i = 0; i < 288; i++) { min; } PORTB |= (1<<1); //1 лампа for(int i = 0; i < 288; i++) { min; } PORTB |= (1<<2); //1 лампа for(int i = 0; i < 288; i++) { min; } PORTB |= (1<<3); //1 лампа for(int i = 0; i < 288; i++) { min; } PORTB |= (1<<4); //нагрузка for(int i = 0; i < 2; i++) { min; } PORTB &= ~(1<<4); PORTB &= ~(1<<3); PORTB &= ~(1<<2); PORTB &= ~(1<<1); PORTB &= ~(1<<0); } }
  8. Ну, точность собаки оставляет желать лучшего, так что часы на ней делать не стоит. Надеюсь, boogoo развеет мои опасения. Есть ли опыт в "компьютерном", или хотя бы каком-нибудь, Си и "контроллерном" ассемблере? Не развею ...я 0 в программировании
  9. На данном этапе дальше функций delay PIN PORT DDR остальные надписи у меня вызывает непонимание ...вот я и хочу увидеть *НАПИСАННЫЙ РАБОЧИЙ КОД* ...вообщем разобраться так сказать на пальцах - что куда и почему. Пытаясь самостоятельно подогнать код от других камней, чтобы все таки увидеть - как это нужно писать ....Загниваю в ошибках Кстати ваш код тоже не комплитится! (да и про дополнительный внутренний генератор для attiny13 в гугле тоже не нашел)
  10. В скобках много мусора, читать не обязательно!!! {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( И снова прошу о помоще, про копаясь в своем же.... из за которых пытаюсь делать выводы, как я понял библиотека deley в atmel studio имеет предел по числу ... прописал несколько раз delay(10000); delay(10000); delay(10000); delay(10000); он дает мне предел и все равно выполняет код как и раньше (то есть, несколько раз вызвать таймер нет возможности) но если прописать delay(10000); PORTB |= (1<<0); delay(1); //какое нибудь ненужное действие чтобы просто ткнуть в промежуток PORTB &= ~(1<<0); //вырубить свое ненужное действие Так конечно прокатывает, но памяти для такой простой задачи и цикла в 24 часа мне нужно в 20 раз больше чем имеет attiny13. Почитал про таймеры ...делитель ...положение таймера.. Есть множество всяческих ресурсов чтобы это подтянуть и естественно читаю на досуге, но вот c примерами в atmel studio, да и ещё для attiny13 скудно... так как нахожусь в самом начале пути даже не представляю как это написать в atmel studio ...пытался искать для atmel studio задержку на таймере в несколько минут для attiny13 на всяческих сайтах, форумах: подобных примеров не нашел. ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} Буду рад увидеть код для камня attiny13 в atmel studio на языке С, где расписана задержка на таймере больше одной минуты.
  11. Кварц на attiny13a интересно... А так уже присмотрел интересную схему для восстановления фьюзов attiny13a, но уже как сказал *Жду почту...
  12. Как обычно игрался с фьюзами и убил последний 5 микроконтроллер ...как приедет другие обязательно буду продолжать...
  13. Всем спасибо, из выше сказанного интуитивно понятно что с функцией delay я нащупал предел задержки ..поищу про таймер
×
×
  • Создать...