Jump to content

Search the Community

Showing results for tags 'atmega8'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Вопрос-Ответ. Для начинающих
    • Песочница (Q&A)
    • Дайте схему!
    • Школьникам и студентам
    • Начинающим
    • Паяльник TV
    • Обсуждение материалов с сайта
  • Радиоэлектроника для профессионалов
    • Автомобильная электроника
    • Питание
    • Ремонт
    • Системы охраны и наблюдения. Личная безопасность
    • Роботы и модели на ДУ-управлении
    • Световые эффекты и LED
    • Самодельные устройства к компьютеру
    • Программное обеспечение
    • Металлоискатели
    • Автоматика
    • Электрика
    • Промышленная электроника
    • Измерительная техника
    • Мастерская радиолюбителя
    • КВ и УКВ радиосвязь
    • Жучки
    • Сотовая связь
    • Спутниковое ТВ
    • Телефония и фрикинг
    • Высокое напряжение
    • Идеи и технологии будущего
    • Справочная радиоэлементов
    • Литература
    • Схемотехника для профессионалов
    • Разное
  • Аудио
    • FAQ, Технологии и компоненты
    • Для начинающих
    • Источники звука
    • Предусилители, темброблоки, фильтры
    • Питание аудио аппаратуры
    • Усилители мощности
    • Акустические системы
    • Авто-аудио
    • Ламповая техника
    • Гитарное оборудование
    • Прочее
  • Микроконтроллеры
  • Товары и услуги
  • Разное
  • Переделки's ATX->ЛБП
  • Переделки's разные темы
  • Киловольты юмора's Юмор в youtube

Blogs

There are no results to display.

There are no results to display.

Marker Groups

  • Пользователи форума

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


ICQ


Skype


Интересы


Город


Сфера радиоэлектроники


Оборудование

Found 10 results

  1. Доброго времени суток дня и ночи!!! Я конечно понимаю, что за это время уже успел надоесть вам, но прошу откликнуться к просьбе о помощи. Проблема заключается в следующем: В данной схеме используется Atmega8 Фьюзы: При симуляции схемы происходит следующее: А дальше ничего не происходит. Возникает также проблема такого рода: Почему-то Протеус ругается на это, но при удалении этой строки из кода в Протеусе, схема начинает вроде бы работать, но дальше setup на ЖКИ ничего не появлется. Очень прошу помочь понять, что не так. Мб на железе это всё бы и работало. Как разрешить эту проблему в программе? Я буду очень благодарен всем, кто откликнется на мою проблему. Надеюсь вы не оставите это без внимания. Очень надеюсь...
  2. Вот сам код программ Текст программы МК /******************************************************* Chip type : ATmega8 Program type : Application AVR Core Clock frequency: 8,000000 MHz Memory model : Small External RAM size : 0 Data Stack size : 256 *******************************************************/ #include <mega8.h> #include <delay.h> // Alphanumeric LCD functions #include <alcd.h> // Standard Input/Output functions #include <stdio.h> #include <stdlib.h> // Declareyourglobalvariableshere float s; unsigned long int k0=0,k1=0,k2=0,k3=0,k0123=0; unsigned long int k4=0,k5=0,k6=0,k7=0;//k4567=0; unsigned long int k8=0,k9=0,k10=0,k11=0;//k891011=0; unsigned long int k12=0,k13=0,k14=0,k15=0;//k12131415=0; unsigned long int k16=0,k17=0; char k=0; void main(void) { // Declare your local variables here char buffer[20]; char a,b,c,d,e,f; // Присваивание переменным a,b,c численные значения 63 05 00 01 CF A1 a=0b01100011; //63 b=0b00000101; //05 c=0b00000000; //00 d=0b00000001; //01 e=0b11001111; //CF f=0b10100001; //A1 DDRD.2=1; PORTD.2=0; // USART initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On // USART Transmitter: On // USART Mode: Asynchronous // USART Baud Rate: 9600 UCSRA=(0«RXC) | (0«TXC) | (0«UDRE) | (0«FE) | (0«DOR) | (0«UPE) | (0«U2X) | (0«MPCM); UCSRB=(0«RXCIE) | (0«TXCIE) | (0«UDRIE) | (1«RXEN) | (1«TXEN) | (0«UCSZ2) | (0«RXB8) | (0«TXB8); UCSRC=(1«URSEL) | (0«UMSEL) | (0«UPM1) | (0«UPM0) | (0«USBS) | (1«UCSZ1) | (1«UCSZ0) | (0«UCPOL); UBRRH=0x00; UBRRL=0x33; // Alphanumeric LCD initialization // Connections are specified in the // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu: // RS - PORTС Bit 0 // RD - PORTС Bit 1 // EN - PORTС Bit 2 // D4 - PORTС Bit 3 // D5 - PORTС Bit 4 // D6 - PORTС Bit 5 // D7 - PORTD Bit 7 // Characters/line: 20 lcd_init(20); lcd_clear(); delay_ms(1000); while (1) { printf("%c%c%c%c%c%c",a,b,c,d,e,f); // отправка в порт //принимаем байты k=getchar(); // 0 байт if (k==99) {PORTD.2=1;} k0=getchar(); // 1 байт Активная энергия+ k1=getchar(); // 2 байт k2=getchar(); // 3 байт k3=getchar(); // 4 байт k4=getchar(); // 1 байт Активная энергия- k5=getchar(); k6=getchar(); k7=getchar(); k8=getchar(); // 1 байт Реактивная энергия+ k9=getchar(); k10=getchar(); k11=getchar(); k12=getchar(); // 1 байт Реактивная энергия- k13=getchar(); k14=getchar(); k15=getchar(); k16=getchar(); k17=getchar(); // 19 байт k0=k0«24; k1=k1«16; k2=k2«8; k0123=k0|k1|k2|k3; s=k0123; sprintf(buffer,"A+=%.4fkWh",s/2500); lcd_gotoxy(0,0); lcd_puts(buffer); // k4=k4«24; // k5=k5«16; // k6=k6«8; // k4567=k4|k5|k6|k7; // s=k4567; // sprintf(buffer,"A-=%.4fkWh",s/2500); // lcd_gotoxy(0,1); // lcd_puts(buffer); // // k8=k8«24; // k9=k9«16; // k10=k10«8; // k891011=k8|k9|k10|k11; // // // s=k891011; // sprintf(buffer,"R+=%.4fkVarh",s/2500); // lcd_gotoxy(0,2); // lcd_puts(buffer); // // // k12=k12«24; // k13=k13«16; // k14=k14«8; // k12131415=k12|k13|k14|k15; // s=k12131415; // sprintf(buffer,"R-=%.4fkVarh",s/2500); // lcd_gotoxy(0,3); // lcd_puts(buffer); delay_ms(1000); lcd_clear(); } }
  3. https://cxem.net/pitanie/5-176.php Эта конструкция. Раздобыл экран Siemens, удачно) Бесхозный трансформатор небольших размеров тоже где-то точно у меня есть, по идее. Также досталось дохлое ЗУ, корпус которого как раз вместит в себя новую начинку. Как я понял, контроллер можно спокойно ставить ATmega8A-AU, вместо ATMega8L-8SU. L - версия всего лишь кушает поменьше). И в настройках программатора всего лишь выбрать мой "A" контроллер, а остальное то же самое, но... не нашел ISP режима для него( Фьюзы, как понял из написанного. При чем тут еще Lock Bit ? Надо будет посмотреть, все ли используемые ножки мк совпадают в DIP и SMD версиях, чтобы переразвести плату управления. Надеюсь, в эти 2 дня выкрою время на это дело. Кто-нибудь повторял эту схему, каковы впечатления ? Есть некоторые вопросы по прошивкам
  4. 1.Создать схему в которой два светодиоды загораются в следующей последовательности: 1 и 2, 2 и 3, 3 и 4, …, 15 и 16, 1 и 2 и т.д. (т.е. создается эффект движения двух светодиодов). Дано условие выше. Решение задачи нужно представить в Proteus. Код для программирования пишу в AtmelStudio 7. Схему собрал в Proteus. Вывел 16 светодиодов через 2 порта (Порт B и Порт D). МК использовал ATMEGA 8 вариации в корпусе DIP с 28 ножками (SPDIL28). До этого смог написать схему, чтобы работали светодиоды в последовательности 1.2.3.4.5....16.1.2.3.4 и тд. Делал через оператор FOR. Однако с этим кодом начались проблемы. Помогите пожалуйста. Нижу представил изображение кода. Заранее спасибо!
  5. Здравствуйте. Проблема такая:после прошивки USBASP ноутбук перестал его определять. Ошибка в диспетчере устройств:сбой запроса дескриптора USB устройства. Прошивал через Arduino UNO и avrdude. Прошивку скачать с офф сайта(последнюю на сайте https://www.fischl.de/usbasp/). Все прошло успешно. Почти)) Подскажите что можно сделать?
  6. Здравствуйте! Столкнулся со следующей проблемой: при сборке МД "Шанс" дошел до этапа прошивки МК, в итоге запорол 3 атмеги. Прошивал 3 способами: 1. Через Arduino UNO(As ISP) просто МК 2. Через Arduino UNO(As ISP) МК внутрисхемно(соответственно с обвязкой) 3. Через USB ASP внутрисхемно(с обвязкой соответственно). Вышло так, что в наличии кварца 11.0592 МГц не было, и я временно впаял 12 МГц. Прошил трижды всё правильно(фьюзы , контакты и т.д). После прошивки просто не видит МК (ну и плата не работает без МК.да и Бог с ней, но МК всеравно не могу считать). В чем причина понять не могу. Одно думаю, что это разница между 11.0592 и 12 МГц. Посоветуйте как решить проблему. Коды ошибок после прошивки во всех трёх случаях одинаковые: Sinaprog -invalid device signature Averdude -avrdude: warning: cannot set sck period, please check for usbasp firmware update target don't answer
  7. Есть картинка из сайта с фьюзами, есть программа avrdude_prog3.3 Как выставить правильно фьюзы чтобы не испортить мк? Незнаю как это сделать есть прямые и инверсные фьюзы, ГДЕ СТАВИТЬ ГАЛОЧКИ И КРУЖОЧЕК НА ПРЯМЫХ ИЛИ ИНВЕРСНЫХ?
  8. Добрый день. Опять ATMega, опять таймер 1, вопрос рутинный, но я за сегодня уже извёлся. Что я хотел сделать: МК должен рассчитывать положения моторов (SG90, регулируются временем импульса), включать их все вместе по совпадению таймера 2, затем рассчитывать, когда какой мотор надо отключить, получившийся список сортировать и ставить таймер 1. Таймер 1 сработал - выключили мотор, переставили таймер 1 на подальше. Снова сработал - снова что-то там сделали, увеличили OCR1A и так далее. Конечно же с первого раза не заработало и я начал упрощать и локализировать проблему. Получилось вот что: при срабатывании прерывания на совпадение таймера 1 с OCR1A я смотрю в отладчик - а там во-первых TIFR = OCF1A + OCF1B + TOV1, а TCNT1 равен чему угодно, но не OCR1A. Таймер как будто срабатывает не тогда. А когда я ставлю значение поменьше, допустим, OCR1A = 1000 и перехожу в пустой цикл while(1){}, то при наступлении OCR1A == 1000 просто ничего не происходит, прерывание не срабатывает. В целом так. Сейчас очень упрощённый, минимально не работающий код выглядит так: #define SET(_REGISTER, _BIT) _REGISTER |= 1 << _BIT #define UNSET(_REGISTER, _BIT) _REGISTER &= ~(1 << _BIT) void local_timer_setup(void) { SET(TCCR1B, CS10); //Setting timer 1 to x1 mode }; void local_timer_start(void) { TCNT1 = 0; SET(TIMSK, OCIE1A); //Allow timer 1 match A interruption }; void local_timer_off(void) { UNSET(TIMSK, OCIE1A); //Prohibit timer 1 match A interruption }; ISR(TIMER1_COMPA_vect) { PORTD = 0xFF; local_timer_off(); }; ISR(TIMER2_COMP_vect) { if (global_timer_count == 2) { global_timer_count = 0; TIFR = 0; PORTD = 0; if (current_step < 10) OCR1A = 0xFFF; else OCR1A = 0xFFFF; if (current_step == 20) current_step = 0; else current_step++; local_timer_start(); } else global_timer_count++; }; Полный код в файле. sei() не забыл. Кстати, таймер нормально выключать/включать через TIMSK, как у меня? Заранее спасибо. Scarecrow_embeded.rar
  9. помогите разобраться с кодом .(послать значение по шине TWI на ЦАП PCF8591) не работает в протеусе ... #define F_CPU 8000000UL #include <stdlib.h> #include <avr/io.h> #include <util/delay.h> //*** ИНИЦИАЛИЗАЦИЯ ШИНЫ TWI ***/ void TWI_Init(void) { // Установка тактовой частоты F_scl = 100 кГц TWBR =32; TWSR &= (~((1<<TWPS1)|(1<<TWPS0))); TWCR |= (1 << TWEN); // Разрешение работы TWI-модуля } /*** ЗАПУСК TWI ***/ void TWI_Start(void) { TWCR = (1<<TWINT) | (1<<TWSTA) | (1<<TWEN); while(!(TWCR & (1<<TWINT))); TWDR = 1001000; // передача адреса модуля PCF8591 в шину TWI TWCR=(1<<TWINT)|(1<<TWEN); while(!(TWCR & (1<<TWINT))); } /*** ОСТАНОВКА TWI ***/ void TWI_Stop(void) { TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWSTO); while(TWCR & (1<<TWSTO)); // Ожидание завершения передачи условия СТОП } /***ПЕРЕДАЧА ДАННЫХ В TWI***/ void TWI_WriteByte(uint8_t data) { TWDR = data; // Загрузка данных в TWDR TWCR=(1<<TWINT)|(1<<TWEN); while(!(TWCR & (1 << TWINT))); // Ожидание завершения передачи данных } /*** ПЕРЕДАТЬ ЗНАЧЕНИЕ В PCF8591 ***/ void PCF8591_get(void) { TWI_Start(); // Запуск TWI TWI_WriteByte(0x40); //включаем цап TWI_WriteByte(100); // запись в ЦАП значения 100 TWI_Stop(); // Остановить TWI } int main(void) { TWI_Init(); while (1) { PCF8591_get; _delay_ms(50); } }
  10. Добрый день. Экспериментирую с платой TP4056 и MK ATmega8, конкретнее - пытаюсь собрать простенькое зарядное устройство с выводом параметров при зарядке/разрядке на АЦП МК. Для измерения тока нашел ACS712. Думаю, что получится выводить ток при зарядке (т.е. когда идет питание на TP4056 и нагрузка отключена) и при разрядке (питание выключено, нагрузка подключена). Нагрузка - резистор. Возникла проблема с измерением напряжения на АКБ. Вернее, проблема с отсутствием идей как это сделать. Может какую-нибудь схему делителя напряжения нужно сделать? Прошу помочь советом. Схему из пэинта прилагаю. Спасибо.
×
×
  • Create New...