Jump to content

binarick

Members
  • Content Count

    20
  • Joined

  • Last visited

Community Reputation

0 Обычный

About binarick

  • Rank
    Новенький

Информация

  • Город
    Новосибирск

Электроника

  • Стаж в электронике
    Не связан с электроникой
  • Сфера радиоэлектроники
    микроконтроллеры
  1. Подправил код // External Interrupt 0 service routine interrupt [EXT_INT0] void ext_int0_isr(void) { char lcd_buffer[33]; //5 - left; 6 - right; 7 - clik pushkey = 8; if (PINB.7==1) pushkey = 7; if (PINB.6==1) pushkey = 6; if (PINB.5==1) pushkey = 5; lcd_gotoxy(0, 1); sprintf(lcd_buffer,"%u", pushkey); lcd_puts(lcd_buffer); #asm("cli") while(1) { } } Добавил запрет прерываний #asm("cli") и цикл (слабо понимаю нафига он) так вот при выполнении в протеусе также нефига не работает и получаю 8 кроме того из-за бесконечного цикла теперь подвисает проц Всё я в тупике не пойму вроде простая штука а не крутится
  2. нет вот так считал по лок битам как в первом скрине значить если заводские 1мГц с задержкой 6 тактов + 0 мс. то по кальку CKSEL3 CKSEL2 CKSEL1 CKSEL0 и выходит что True это нет галки . Верно ?
  3. Здравствуйте уважаемые Написал программку, взял Атмегу8 хочу залить прошивку У меня есть программатор UPA-USB v1.2 хочу его использовать благо в описании написано что всё ок Разбираюсь с фъюзами и лок-битами нашёл калькулятор http://fusecalc.mirmk.net/ внизу получаю табличку с установками только не знаю как их выставлять на моём программаторе толи 1 толи 0 по этой табличке Фъюзы на моём прогере устанавливаются как True и False Подскажите чтоб не залочить проц случаем True это установлен ? Лок-биты ? Спасибо за Ваше время и ответы
  4. дык это не CVAVR а какойто BASCOM да сброса нет. не понимаю просто что за сброс и что он делает. ща буду вникать
  5. Если вставить всю процедуру в main() то всё ок отрабатывает. я по дребезгу как раз хотел поинтересоваться то, что я подтянул R9-R11 достаточно или чтото нужно ещё сделать. по примеру которому делаю там было написано: 'обработчик прерывания Button: 'здесь мы в цикле сканируем все подключенные кнопки Do If Pinb.3 = 0 Then W = 1 End If If Pinb.2 = 0 Then W = 2 End If If Pinb.1 = 0 Then W = 3 End If If Pinb.0 = 0 Then W = 4 End If Pulseout Portd , 6 , 2500 'мигнем светодиодом Loop Until W <> 0 'если дребезг помешал вычислению нажатой кнопки, повторяем Waitms 10 Gifr = 64 'сброс флага прерывания Return я не знаю такого языка меня смущает строка Loop Until W <> 0 ну и это не понимаю для чего Gifr = 64
  6. для полной картины DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0); // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0); // External Interrupt(s) initialization // INT0: On // INT0 Mode: Any change // INT1: Off GICR|=(0<<INT1) | (1<<INT0); MCUCR=(0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (0<<ISC00); GIFR=(0<<INTF1) | (1<<INTF0); И так тоже 8
  7. Приветствую уважаемые Подскажите затык у меня случился) Атмега8 схема код в CVAVR 3.12 // External Interrupt 0 service routine interrupt [EXT_INT0] void ext_int0_isr(void) { char lcd_buffer[33]; //5 - left; 6 - right; 7 - clik if (PINB.7==1) { pushkey = 7; } else if (PINB.6==1) { pushkey = 6; } else if (PINB.5==1) { pushkey = 5; } else { pushkey = 8; }; lcd_gotoxy(0, 1); sprintf(lcd_buffer,"%u", pushkey); lcd_puts(lcd_buffer); } и почему-то всегда имею на выходе 8 те pushkey=8 где я туплю тыкните носом плиз Спасибо за ваше время и ответы и как-то нужно учитывать дребезг контактов или тут всё ок ?
  8. да както так только второй прикрутить пытаюсь а тут нужно понимать уже как прерывания и таймеры фурычат
  9. да не то это мне нужен код управления двигателем в котором нет таких операторов Delay_ms(хх);
  10. там всё завязано на температуру чем она выше тем быстрее крутим это в 2х словах если
  11. Экструдер мутим для 3д принтеров нитку делать да я понимаю, но мне результат нужен а не самообразование, хотя не помешает конечно
  12. примерно так и предполагал беда в том, что нужно разбираться с прерываниями и таймерами а я дуб дубом в этом вопросе хотел выехать на чужой разработке )) уж извините как есть говорю ок пошёл вникать. Спасибо
  13. а кусок кода можно ? для полного счастья да забыл драйвер есть у меня
  14. Подскажите плиз Ситуация такая, была простейшая схемка на Атмеге8А которая управляла шаговым двигателем (генерила импульсы для него) В коде всё было элементарно тупо, подобрал Делеи и жил счастливо Но теперь появилась необходимость крутить ещё один двигатель. И как я понимаю двигателя будут буксовать из-за этих Делеев. Как нормальные люди делают код для управления более чем одним двигателем ? Тыкните носом плиз Спасибо за ваше время и ответы
  15. ищу пока только на термопарах попадаются схемки (нада кстати подумать в этом направлении) хотя в коде как я понимаю различий не будет если правильно понимаю термопара это тотже термистор но с обвязкой в виде усилителя
×
×
  • Create New...