Jump to content

Recommended Posts

Реализовать частотомер на базе МК atmega16. Частоту измерять с помощью таймера счетчика, отображение результатов на экране LCD. Управление с помощью кнопок клавиатуры.Реализовать это в программе codevisionAVR. Сам я туп как пробка в этом вопросе, но от этого задания зависит мой вылет из университета. Кто знает, помогите, пожалуйста!!

Share this post


Link to post
Share on other sites

П.II.1.


Я не раздаю рыбу. Я раздаю удочки.

ПРОСТОТА - ХУЖЕ ВОРОВСТВА!!!

Share this post


Link to post
Share on other sites

Изготовление 2-х слойных плат от 2$, а 4-х слойных от 5$!

Быстрое изготовление прототипа платы всего за 24 часа! Прямая доставка с нашей фабрики!

Смотрите видео о фабрике JLCPCB: https://youtu.be/_XCznQFV-Mw

Посетите первую электронную выставку JLCPCB https://jlcpcb.com/E-exhibition чтобы получить купоны и выиграть iPhone 12, 3D-принтер и так далее...

Guest
This topic is now closed to further replies.

  • Сообщения


  • 16A Мини Wi-Fi переключатель. Работает с Alexa Google Home

  • Similar Content

    • By Sambler
      У меня была похожая тема,  я решил проблему установив в include util/delay.h
      Но возникла еще одна ошибка, не могу понять, что оно хочет


      p.s. Я обещал, что предыдущая - последняя тема, но я ошибся, не думал, что тут 2 разные программы будут. В этот раз 100 процентов последняя тема и пойду сдавать работы Ы)

       

    • By Sambler
      Дана следующая программа и следующая схема.
      После запуска, циклично выдает одни и те же ошибка и до такой степени, что ПК не выдерживает нагрузку и приходится принудительно закрывать программу ( когда обычно, запустил программу и она не продолжает запускаться, а сразу указывает на ошибку в коде, а тут она даже не останавливается )
      При создании проекта выбираю WINAvr!!!



      Я не могу остановить симуляцию, приходится закрывать принудительно.
      Z
    • Guest Василий
      By Guest Василий
      Кто  может  помочь с примером  программирования в  программе  LDmicro  ?  Интересует  как  программировать   PWM выход  ? Хотелось  бы   увидеть  наглядный  пример  может  кто  знает ! Буду  рад  любой  информации !!!
    • By CUBE
      Не могу запустить асинхронный режим. 
      Ниже будет представлен код которым пытаюсь отладить. Там в 1 коде идёт работа от внутреннего источника таков (стоит 1МГц).  После 5 миганий таймер должен перейти в асинхронный режим и мигать с частотой в 1 Гц. У меня происходит 5 миганий потом ничего. Фьюзы менять пробовал, ничего не дало, сейчас дефолт. Корпус кварца к земле тянуть пробовал - безрезультатно. 
      Возможно что-то в подключении накосячил, если не видно на фото ниже, спрашиваете, нужно будет - нарисую схему. 
      Компилятор Atmel Studio 7
      Шью через Sind Prog 2.1.1 + USBasp 2.0
      Вот код: 
      .macro outi 
       ldi r16, @1 
       out @0, r16 
      .endm 
      .org $000 
      rjmp reset 
      .org $001 
      reti 
      .org $002 
      reti 
      .org $003 
      reti 
      .org $004 
      rjmp timer2_ovf 
      .org $005 
      reti 
      .org $006 
      reti 
      .org $007 
      reti 
      .org $008 
      reti 
      .org $009 
      reti 
      .org $00A 
      reti 
      .org $00B 
      reti 
      .org $00C 
      reti 
      .org $00D 
      reti 
      .org $00E 
      reti 
      .org $00F 
      reti 
      .org $011 
      reti 
      .org $012 
      reti 
      .ORG INT_VECTORS_SIZE 
       
      reset: 
      .equ portout=portd 
      .equ ddrout=ddrd 
      .def led=r17 
      .def mask=r18 
      .def counter=r19 
       outi spl,low(ramend) 
       outi sph,high(ramend) 
       
       outi ddrout, 0xff 
       
       outi tccr2, 0b00000111 
       outi timsk, 1«toie2 
       
        
       
        
       ldi led,1«5 
       ldi mask,1«5 
       sei 
      cycle: 
      cpi counter, 10 
      breq offtim 
       rjmp cycle 
       
      timer2_ovf: 
      inc counter 
       out portout, led 
       eor led, mask 
      reti 
        
      offtim: 
      outi timsk, 0«toie2 
      rjmp asinxron 
       
      asinxron: 
       outi assr, 0b00001000 
      back: 
       in r16, assr 
       cpi r16, 0b00001000 
       brne back 
       
        outi tccr2, 0b00000101 
        outi tcnt2, 0 
        outi ocr2, 0 
        outi timsk, 1«toie2 
       
       
      m1: 
      rjmp m1


      Верх меги на фото слева. 
    • By Static
      Доброго дня
      Пересматривая множество мануалов и примеров по ассемблеру для AVR, возник такой вопросик по работе с памятью данных (SRAM). Множество документов и примеров пересмотрел, нигде не нашел ответа.
      В начале программы мы можем в сегменте данных зарезервировать память под некие переменные. Для VAR1, например, резервируем один байт
      .DSEG
      VAR1: .BYTE 1
      после чего с помощью LDS/STS с ним работаем.
      А теперь самая мякотка. Директивой BYTE мы можем зарезервировать более одного байта для переменной. Если я правильно понимаю, то данный код
      .DSEG
      VAR2: .BYTE 8
      я создаю некое подобие массива, что-то вроде char VAR2[8], если провести аналогию с Си.
      Каким образом на ассемблере я могу работать с N-ным байтом зарезервированной области VAR2?
×
×
  • Create New...