Jump to content
Sambler

МК ATMEGA16 и индикаторы ( Ошибка в коде, не могу решить )

Recommended Posts

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

#include <util/delay.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#define DEL    _delay_ms(1)

char tab[7];

char decod( char digit){
char retval;
switch (digit){
            case 0:  {retval=0b00111111;   break; }
            case 1:  {retval=0b00000110;   break; }
            case 2:  {retval=0b01011011;   break; }
            case 3:  {retval=0b01001111;   break; }
            case 4:  {retval=0b01100110;   break; }
            case 5:  {retval=0b01101101;   break; }
            case 6:  {retval=0b01111101;   break; }
            case 7:  {retval=0b00000111;              break; }
            case 8:  {retval=0b01111111;   break; }
            case 9:  {retval=0b01101111;   break; }
default :retval=0b00000000;
}
return retval;
}
//**********************************************************
void afis(void){
for (int i=0; i<6; i++){
PORTC=~(1<<i);
if (i==2) PORTA=decod(tab[i])|(1<<7);
else if (i==4) PORTA=decod(tab[i])|(1<<7);
else PORTA=decod(tab[i]);
DEL;
}
}
//***********************************************************
void main(void){
DDRA=0xFF;
PORTA=0x00;

DDRC=0x3F;
PORTC=0xFF;

TCCR1B = (1<<CS12)|(1<<CS10)|(1<<WGM12);                  // /1024 regim CTC
OCR1A = 976;
TIMSK = 1<<OCIE1A;           //permitera intrerupeti ‚egalitate’
sei();

while (1){
afis();   }   }
//***********************************************************




ISR(TIMER1_COMPA_vect)
{         
                                                                       //secunde
tab[0]++;
 if (tab[0]>9) { tab[0]=0;        
tab[1]++;}
                                               // minute
if (tab[1]>5) {tab[2]++;                      
tab[1]=0;}
 if (tab[2]>9) {tab[3]++;                     
tab[2]=0; }
 if (tab[3]>5) {tab[4]++;                     
tab[3]=0;}                                // ore
 if (tab[4]>4) {tab[5]++;                     
tab[4]=0;}
 if (tab[5]>2) {tab[5]=0;}

}



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

image.png

Share this post


Link to post
Share on other sites

она тебе пишет, что определять тип переменной в циклах допустимо только в С99 , Си в чистом виде это не позволяет , вынеси определение переменной i в тело функции , оная у тебя изменяется 0...7 , зачем ей размерность в 16бит? ей достаточно тип unsigned char.

 

Share this post


Link to post
Share on other sites
9 минут назад, IMXO сказал:

бред написан...

Код написан моим преподом, не мной)) я если бы знал, я бы не задавал вопросы.
 

 

9 минут назад, IMXO сказал:

ынеси определение переменной i в тело функции

Что то типа этого?image.png.b2cb28f8cc4d923e46ca637f9eed488a.pngimage.png.27e022196f900d03d2dfe2548ddf910e.png
Я не силён в программировании, но как бы всё заработало, но как то криво, не так, как у преподавателя в задании

Edited by Sambler
Добавил последнее предложение

Share this post


Link to post
Share on other sites

Повышаем уровень передаваемой мощности в однопарной сети Ethernet

В статье приведено описание новых гибридных разъемов для использования в SPE-приложениях. По сравнению с традиционными разъемами, в основе структуры которых лежит технология PoDL (Power over Data Line), предлагаемое решение содержит в себе дополнительные контакты питания, но сохраняет при этом компактные размеры. А работа с более высокими значениями тока значительно расширяет возможности применения предлагаемых разъемов в различных топологиях, по сравнению с PoDL.
Подробнее

3 минуты назад, Sambler сказал:

Что то типа этого?

угу.

бред уж давно удалил из поста, скобки не правильно посчитал

Share this post


Link to post
Share on other sites

Вебинар «Новинки и решения Traco для промышленных и отраслевых приложений» (28.10.2021)

Компэл 28 октября приглашает всех желающих принять участие в вебинаре, где будет рассмотрена новая и перспективная продукция компании Traco. Мы подробно рассмотрим сильные стороны и преимущества продукции Traco, а также коснемся практических вопросов, связанных с измерением уровня шумов, промывкой изделий после пайки и отдельно разберем, как отличить поддельный ИП Traco от оригинала.

Подробнее

2 минуты назад, IMXO сказал:

бред уж давно удалил из поста, скобки не правильно посчитал

Удивительно, что сам допер.
Но всё же, почему не получается как должно, а Должно быть так:image.png.2effd5321e2c3e0cf88812d452dd05a9.png

Share this post


Link to post
Share on other sites

Популярные пружинные клеммники Degson со склада Компэл

Пружинные разъемные клеммники Degson с технологией Push-In обеспечивают надежное и безопасное электрическое соединение. При их использовании исключается возможность короткого замыкания в точке контакта, что гарантирует надежное соединение. Электрическая безопасность клеммных блоков подтверждается соответствием мировым стандартам UL, IEC и VDE.
Подробнее

1 минуту назад, Sambler сказал:

почему не получается как должно

опять индикаторы перепутал?

Share this post


Link to post
Share on other sites

Датчики дальности ST обеспечивают безопасность в период COVID-19

Оптические датчики приближения STMicroelectronics из семейства Flight Sense™, средства разработки и программное обеспечение для них позволяют как организовать бесконтактную работу торговых и информационных точек и соблюдение социальной дистанции в непростой эпидемический период, так и строить сложные пространственные системы вплоть до трехмерных моделей. Рассмотрим устройство для обнаружения и измерения расстояний до объектов без физического контакта, и инструментарий для его разработки, а также другие примеры.
Подробнее

4 минуты назад, IMXO сказал:

опять индикаторы перепутал?

Хм, ну да, СА стоит, сейчас....
ЭХ, и почему нигде не указано,что СС нужен....
А в чем собственно их отличие? один рабочий а другой - нет ? :DD ( глупо, да )


Всё заработало))))) 

image.png

Edited by Sambler
Заработало!!!

Share this post


Link to post
Share on other sites

Действительно, в чём отличие индикаторов, в которых светодиоды разной полярностью распаяны? Что по вашему значит аббревиатуры CC и CA применительно к светодиодным индикаторам?


Учение - изучение правил. Опыт - изучение исключений.

Share this post


Link to post
Share on other sites

оба рабочие , отличие в том что активный индикатор для анода "+", для катода "-"

сегменты наоборот.

Share this post


Link to post
Share on other sites
3 минуты назад, Alexeyslav сказал:

Что по вашему значит аббревиатуры CC и CA

А вот вы меня заинтересовали данным вопросом, пойду литературу почитаю по этому поводу, будем еще чем предъявить преподавателю

Спасибо Всем, кто помогал мне на этом форуме, если тема не закроется, чуть позже отпишу, на какую оценку приняли работы)))
Удачи в жизни Вам ребята, добрые вы люди!

Share this post


Link to post
Share on other sites

Что-то мне подсказывает, что это обыкновенные маячки на предмет открывали ли код вообще и вникали в него хоть чуть чуть.


Учение - изучение правил. Опыт - изучение исключений.

Share this post


Link to post
Share on other sites

возможно маячки

а мне , что этот код в железе адекватно работать не будет и дальше протеза его не проверяли.

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения


  • Учебный конструктор для сборки простого спектроанализатора

  • Similar Content

    • By Эдик Ибрагимов
      Использовать микроконтроллер семейства 8951
       
    • By Илья1964
      Нужен специалист, ориентирующийся в MotionLab3 для настройки серводрайвера EVEREST XCR ETHERCAT SERVO DRIVE (EVE-XCR-E) от компании INGENIA для привода отечественного BLDC (0,7 кВт). Энкодер магнитный от компании RLS. Мануал с описанием MotionLab3 можно скачать здесь https://doc.ingeniamc.com/mot3/documentation/motionlab3-user-manual, сам пакет здесь https://doc.ingeniamc.com/mot3/downloads  .  BLDC сидит на оси  линейного перемещения и должен вращаться влево-вправо. Никаких особых хитростей в движении мотора нет.
    • By Klumjuk
      Добрый день! Никак не могу найти резистор R97 на плате бумбокса. Можете определить на фото, либо как-нибудь объяснить мне, где он...
      Вот фотка основной платы,и платы зарядки.
      (На основной плате обозначен контролер заряда,если что)


    • By Klumjuk
      Сгорел контроллер питания в колонке, батарейка 7.4 вольта. Помогите подобрать такой же контролер, либо аналог. Весь интернет обрыл,ничего не нашёл (

    • By Иванов Владимир
      Здравствуйте! Я профан в этой теме, но по работе нужно. Хочу собрать так скажем приёмник на микроконтроллере, чтоб демодулировал сигнал. Сигнал собираюсь подавать с компа. Типо на мк подключённый к компу послать модулированный сигнал. Задача в том чтоб запрограммировать сам мк на демодуляцию. Какой мк и отладочную плату посоветуете?
×
×
  • Create New...