Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 20 из 32

Proteus

  1. #1
    Аватар для valeraussuriysk
    Адрес: Уссурийск Прим.Кра
    Сообщений
    1,377
    Больше 3 лет на форуме

    Proteus

    Chip type : ATtiny2313
    AVR Core Clock frequency: 8,000000 MHz
    *****************************************************/

    #include <tiny2313.h>
    #include <delay.h>
    #include <stdio.h>
    #define SCR_SZ 3 /* Число знакомест */
    #define ROWS PORTB /* Строки - сегменты */
    #define COLS PORTD /* Столбцы - знакоместа */
    #define MSKCOL 0b00011100 /* маска порта D */
    #define SDVIG 2
    #define TAKT 8000000 /* частота работы таймера */
    #define NAKM 2500 /* сколько импульсов приходит с датчика на 1 км хода */
    #define KOOF (3600*(TAKT/NAKM)) /* коофициент для формулы скорости */


    // дальше указываем коды для управления сегментами индикатора//
    #define _a (~(1<<0)) /* 0b11111110 */
    #define _b (~(1<<1)) /* 0b11111101 */
    #define _c (~(1<<2))
    #define _d (~(1<<3))
    #define _e (~(1<<4))
    #define _f (~(1<<5))
    #define _g (~(1<<6))

    #define _0 (_a&_b&_c&_d&_e&_f) /* показываем 0-лик */
    #define _1 (_b&_c) /* показываем 1-ку */
    #define _2 (_a&_b&_d&_e&_g)
    #define _3 (_a&_b&_c&_d&_g)
    #define _4 (_b&_c&_f&_g)
    #define _5 (_a&_c&_d&_f&_g)
    #define _6 (_a&_c&_d&_e&_f&_g)
    #define _7 (_a&_b&_c)
    #define _8 (_a&_b&_c&_d&_e&_f&_g)
    #define _9 (_a&_b&_c&_d&_f&_g)
    #define _OFF 0xff /* 0b11111111 - не показывать ничего в знакоместе */



    // Declare your global variables here
    unsigned char SCR[SCR_SZ] ; // массив - экран (ЗДЕСЬ ХРАНИТЬСЯ ТО,ЧТО МЫ СОБИРАЕМСЯ ПОКАЗЫВАТЬ)
    unsigned char ZIFROTAB[] = {_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_OFF} ; // ЗДЕСЬ ХРАНИМ КОДЫ СООТВЕТСТВУЮЩИЕ ЦИФР
    unsigned char speed,Tmax; // Переменная скорости , Кол-во переполнений таймера ,
    unsigned char z0,z1,z2,tmp; // Переменные для изъятия отдельных цифр из числа "speed"
    unsigned long int period ; // Tmax+ICR ;

    interrupt [TIM1_OVF] timer_1_ovf (void)
    {
    ///////для индикатора:
    static unsigned char pos = 0 ;
    COLS |= MSKCOL ;
    ROWS |= 0x7F ;
    ROWS &= SCR[pos] ;
    COLS &= (~((1<<pos)<<SDVIG));
    if(++pos==SCR_SZ) {pos=0;};


    //////для измерений:
    Tmax++ ;
    }


    interrupt [TIM1_CAPT] timer_1_capt (void)

    {
    period=ICR1+(Tmax*0xffff) ;
    Tmax=0 ;
    TCNT1=0 ;
    }




    void main(void)
    {

    // Crystal Oscillator division factor: 1
    #pragma optsize-
    CLKPR=0x80;
    CLKPR=0x00;
    #ifdef _OPTIMIZE_SIZE_
    #pragma optsize+
    #endif

    // Input/Output Ports initialization
    PORTA=0x00;
    DDRA=0x00;

    // Port B initialization
    PORTB=0xff;
    DDRB=0xff;

    // Port D initialization
    // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State6=T State5=T State4=T State3=T State2=T State1=T State0=T
    PORTD=0xff;
    DDRD=0x3f;


    // Timer/Counter 1 initialization
    // Clock source: System Clock
    // Clock value: 8000,000 kHz
    // Mode: Normal top=FFFFh
    // OC1A output: Discon.
    // OC1B output: Discon.
    // Noise Canceler: Off
    // Input Capture on Falling Edge
    // Timer1 Overflow Interrupt: Off
    // Input Capture Interrupt: Off
    // Compare A Match Interrupt: Off
    // Compare B Match Interrupt: Off
    TCCR1A=0x00;
    TCCR1B=0b11000001;
    TCNT1H=0x00; //
    TCNT1L=0x00; //
    ICR1H=0x00; //
    ICR1L=0x00; //
    OCR1AH=0x00; //
    OCR1AL=0x00; //
    OCR1BH=0x00;
    OCR1BL=0x00;


    // Timer(s)/Counter(s) Interrupt(s) initialization
    TIMSK=0b10001000;


    #asm ("sei")

    while (1)
    {

    speed= KOOF / period ; // 11 520 000 / 25000 = //135,529
    /* speed=199 ; //это значение нам надо показать на индикаторе,подставляем любое от 0 до 255 ТОЛЬКО ДЛЯ ПРОВЕРКИ !!!СТРОКА ВСЯ ЗАКОММЕНТИРОВАНА */
    tmp=speed;

    z2=tmp%10;
    z1=(tmp/10)%10;
    z0=tmp/100;

    if(tmp>=100){SCR[0]=ZIFROTAB [z0];} //если скорость >= 100,то показываем старшую цифру
    else {SCR[0]=ZIFROTAB [10];}; //если скорость <100,то не показываем старшую цифру
    if(tmp>=10){SCR[1]=ZIFROTAB [z1];} //если скорость >= 10,то показываем вторую цифру
    else{SCR[1]=ZIFROTAB [10];}; //если скорость <100,то не показываем вторую цифру
    SCR[2]=ZIFROTAB [z2]; //младшую цифру показываем всегда


    };
    }

  2. #2
    Аватар для valeraussuriysk
    Адрес: Уссурийск Прим.Кра
    Сообщений
    1,377
    Больше 3 лет на форуме
    Программу "спидометр" пишу,а проверить не могу чего-то.
    В протеусе,когда подаешь "тики" любой частоты на вход захвата,то почему-то не работает даже индикация.В чем косой спорол?

  3. #3
    Аватар для Сергей Oxigen
    Адрес: 25 = 36
    Сообщений
    2,415
    Больше 10 лет на форуме
    Вот замудрил,сначала подумал вирус какой то.
    Не верьте данайцам,дары приносящим!

  4. #4
    Аватар для valeraussuriysk
    Адрес: Уссурийск Прим.Кра
    Сообщений
    1,377
    Больше 3 лет на форуме
    Не-е-е-е :) с недавних пор МК заинтересовался - ВОТ ВЕЩЬ !

  5. #5
    Аватар для Андрей Ф.
    Адрес: Братск
    Сообщений
    5,768
    Больше 10 лет на форуме
    Сообщение от valeraussuriysk Посмотреть сообщение
    Chip type : ATtiny2313
    AVR Core Clock frequency: 8,000000 MHz
    *****************************************************/

    #include <tiny2313.h>
    #include <delay.h>
    #include <stdio.h>
    #define SCR_SZ 3 /* Число знакомест */
    #define ROWS PORTB /* Строки - сегменты */
    #define COLS PORTD /* Столбцы - знакоместа */
    #define MSKCOL 0b00011100 /* маска порта D */
    #define SDVIG 2
    #define TAKT 8000000 /* частота работы таймера */
    #define NAKM 2500 /* сколько импульсов приходит с датчика на 1 км хода */
    #define KOOF (3600*(TAKT/NAKM)) /* коофициент для формулы скорости */


    // дальше указываем коды для управления сегментами индикатора//
    #define _a (~(1<<0)) /* 0b11111110 */
    #define _b (~(1<<1)) /* 0b11111101 */
    #define _c (~(1<<2))
    #define _d (~(1<<3))
    #define _e (~(1<<4))
    #define _f (~(1<<5))
    #define _g (~(1<<6))

    #define _0 (_a&_b&_c&_d&_e&_f) /* показываем 0-лик */
    #define _1 (_b&_c) /* показываем 1-ку */
    #define _2 (_a&_b&_d&_e&_g)
    #define _3 (_a&_b&_c&_d&_g)
    #define _4 (_b&_c&_f&_g)
    #define _5 (_a&_c&_d&_f&_g)
    #define _6 (_a&_c&_d&_e&_f&_g)
    #define _7 (_a&_b&_c)
    #define _8 (_a&_b&_c&_d&_e&_f&_g)
    #define _9 (_a&_b&_c&_d&_f&_g)
    #define _OFF 0xff /* 0b11111111 - не показывать ничего в знакоместе */



    // Declare your global variables here
    unsigned char SCR[SCR_SZ] ; // массив - экран (ЗДЕСЬ ХРАНИТЬСЯ ТО,ЧТО МЫ СОБИРАЕМСЯ ПОКАЗЫВАТЬ)
    unsigned char ZIFROTAB[] = {_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_OFF} ; // ЗДЕСЬ ХРАНИМ КОДЫ СООТВЕТСТВУЮЩИЕ ЦИФР
    unsigned char speed,Tmax; // Переменная скорости , Кол-во переполнений таймера ,
    unsigned char z0,z1,z2,tmp; // Переменные для изъятия отдельных цифр из числа "speed"
    unsigned long int period ; // Tmax+ICR ;

    interrupt [TIM1_OVF] timer_1_ovf (void)
    {
    ///////для индикатора:
    static unsigned char pos = 0 ;
    COLS |= MSKCOL ;
    ROWS |= 0x7F ;
    ROWS &= SCR[pos] ;
    COLS &= (~((1<<pos)<<SDVIG));
    if(++pos==SCR_SZ) {pos=0;};


    //////для измерений:
    Tmax++ ;
    }


    interrupt [TIM1_CAPT] timer_1_capt (void)

    {
    period=ICR1+(Tmax*0xffff) ;
    Tmax=0 ;
    TCNT1=0 ;
    }




    void main(void)
    {

    // Crystal Oscillator division factor: 1
    #pragma optsize-
    CLKPR=0x80;
    CLKPR=0x00;
    #ifdef _OPTIMIZE_SIZE_
    #pragma optsize+
    #endif

    // Input/Output Ports initialization
    PORTA=0x00;
    DDRA=0x00;

    // Port B initialization
    PORTB=0xff;
    DDRB=0xff;

    // Port D initialization
    // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State6=T State5=T State4=T State3=T State2=T State1=T State0=T
    PORTD=0xff;
    DDRD=0x3f;


    // Timer/Counter 1 initialization
    // Clock source: System Clock
    // Clock value: 8000,000 kHz
    // Mode: Normal top=FFFFh
    // OC1A output: Discon.
    // OC1B output: Discon.
    // Noise Canceler: Off
    // Input Capture on Falling Edge
    // Timer1 Overflow Interrupt: Off
    // Input Capture Interrupt: Off
    // Compare A Match Interrupt: Off
    // Compare B Match Interrupt: Off
    TCCR1A=0x00;
    TCCR1B=0b11000001;
    TCNT1H=0x00; //
    TCNT1L=0x00; //
    ICR1H=0x00; //
    ICR1L=0x00; //
    OCR1AH=0x00; //
    OCR1AL=0x00; //
    OCR1BH=0x00;
    OCR1BL=0x00;


    // Timer(s)/Counter(s) Interrupt(s) initialization
    TIMSK=0b10001000;


    #asm ("sei")

    while (1)
    {

    speed= KOOF / period ; // 11 520 000 / 25000 = //135,529
    /* speed=199 ; //это значение нам надо показать на индикаторе,подставляем любое от 0 до 255 ТОЛЬКО ДЛЯ ПРОВЕРКИ !!!СТРОКА ВСЯ ЗАКОММЕНТИРОВАНА */
    tmp=speed;

    z2=tmp%10;
    z1=(tmp/10)%10;
    z0=tmp/100;

    if(tmp>=100){SCR[0]=ZIFROTAB [z0];} //если скорость >= 100,то показываем старшую цифру
    else {SCR[0]=ZIFROTAB [10];}; //если скорость <100,то не показываем старшую цифру
    if(tmp>=10){SCR[1]=ZIFROTAB [z1];} //если скорость >= 10,то показываем вторую цифру
    else{SCR[1]=ZIFROTAB [10];}; //если скорость <100,то не показываем вторую цифру
    SCR[2]=ZIFROTAB [z2]; //младшую цифру показываем всегда


    };
    }
    Валера, ты эта, завязывай тута материться так, ага)))

  6. #6
    Аватар для danill
    Адрес: магнитогорск
    Сообщений
    3,673
    Больше 7 лет на форуме
    это программа для ракеты?
    везде хорошо где нас нет

  7. #7
    Аватар для valeraussuriysk
    Адрес: Уссурийск Прим.Кра
    Сообщений
    1,377
    Больше 3 лет на форуме
    Может homer111 подскажет или ТРАК?
    Блин такая вещь МК вы себе даже не представляете.
    Думаю если-бы хотя-бы 50% DROM-овцев хотя-бы представляли себе возможности этих микрух,то не округляли-бы глаза при разборе проблем с комон рейлом и сажевым фильтром.

  8. #8
    Аватар для D500
    Адрес: Лесозаводск 25RUS
    Сообщений
    4,788
    Больше 7 лет на форуме
    чё такое МК?
    Как всегда, ваш опыт может отличаться от нашего...

  9. #9
    Аватар для valeraussuriysk
    Адрес: Уссурийск Прим.Кра
    Сообщений
    1,377
    Больше 3 лет на форуме
    Сегодня работа рано закончилась.Решил пивка попить и заодно проблему в машине попробовать решить: У меня ВООБЩЕ нет спидометра (т.е. дырка в том месте где должен был быть спидометр) Думал сначала стрелочный вставить-переделать амперметр/вольтметр, но нынче думкаю замутить 7-ми сигментник (это называют "цифровой" спидометр)
    Сообщение от danill Посмотреть сообщение
    это программа для ракеты?

  10. #10
    Аватар для danill
    Адрес: магнитогорск
    Сообщений
    3,673
    Больше 7 лет на форуме
    комон реел это весело удачи
    везде хорошо где нас нет

  11. #11
    Аватар для valeraussuriysk
    Адрес: Уссурийск Прим.Кра
    Сообщений
    1,377
    Больше 3 лет на форуме
    Под пивко займусь просветительской деятельностью.Очень добрый:)

    МК - микросхема МикроКонтроллер - посуществу компьютер со своим АЛУ,таймерами и куевой хучей прибамбасов.

  12. #12

    Адрес: Маасковская область...
    Сообщений
    11,678
    Больше 15 лет на форуме
    Сообщение от valeraussuriysk Посмотреть сообщение
    Может homer111 подскажет или ТРАК?
    Блин такая вещь МК вы себе даже не представляете.
    Думаю если-бы хотя-бы 50% DROM-овцев хотя-бы представляли себе возможности этих микрух,то не округляли-бы глаза при разборе проблем с комон рейлом и сажевым фильтром.
    Про common rail и homer111

    абориген со стоянки пригнал свежий Форвард с электронным геморроем и здоровенной бочкой на выхлопе
    полгода мучался как-то, но потом сдался и поехал в Нахабино к homer111.
    Там ему что-то перепрошили и велели в сажевом фильтре насверлить дырок больших, чтобы дым выходил - и типа все будет ок.
    Взяли отнюдь не 10 т.р., но вроде как теперь никаких проблем быть не должно.
    Он целый день снимал бочку, сверлил, ставил обратно.

    Итог: то она не заводится, то не едет груженая, то расход топлива 35 л/100 - и в итоге выставлена на продажу.
    http://trucks**********/trucks/used/sa...7920-6104.html - ни в коем случае покупать его нельзя

    Выводы: МК - это конечно вещь, но зарабатывать надо на машине с механическим ТНВД.

    P.S.: Исудзу с синей будкой на заднем плане тоже продается, там тока какой-то гемор с мотором и коробкой

    P.P.S.: http://trucks**********/trucks/used/sa...7659-b5d5.html - вот эту машину тоже покупать нельзя, у нее трещина в головке или в гильзах, щас там герметик какой-то, но на ней ездили доливая воду + масла она жрет больше чем солярки + кронштейны задних рессор самодельные, но кривые
    Убытки ПАО АвтоТАЗ:
    2013:7
    2014:24
    2015:74
    2016:45
    2017: 9,7 млрд
    прибыль 2018 - 5,86 млрд

  13. #13

    Адрес: Каневская
    Сообщений
    244
    Больше 7 лет на форуме
    просьба к автору темы-не пей больше пиво, не твоё это... а вообще сочувствую владельцам комона. прогрес иногда-плохо...
    ''участник'' экономического форума в Сочи по вопросам манипуляции и эвакуации.

  14. #14
    Аватар для В.Вадимыч
    Адрес: Красноярск
    Сообщений
    54,734
    Больше 10 лет на форуме
    Сообщение от Jorg Посмотреть сообщение
    Про common rail и homer111

    абориген со стоянки пригнал свежий Форвард с электронным геморроем и здоровенной бочкой на выхлопе
    полгода мучался как-то, но потом сдался и поехал в Нахабино к homer111.
    Там ему что-то перепрошили и велели в сажевом фильтре насверлить дырок больших, чтобы дым выходил - и типа все будет ок.
    Взяли отнюдь не 10 т.р., но вроде как теперь никаких проблем быть не должно.
    Он целый день снимал бочку, сверлил, ставил обратно.

    Итог: то она не заводится, то не едет груженая, то расход топлива 35 л/100 - и в итоге выставлена на продажу.
    http://trucks**********/trucks/used/sa...7920-6104.html - ни в коем случае покупать его нельзя

    Выводы: МК - это конечно вещь, но зарабатывать надо на машине с механическим ТНВД.

    P.S.: Исудзу с синей будкой на заднем плане тоже продается, там тока какой-то гемор с мотором и коробкой

    P.P.S.: http://trucks**********/trucks/used/sa...7659-b5d5.html - вот эту машину тоже покупать нельзя, у нее трещина в головке или в гильзах, щас там герметик какой-то, но на ней ездили доливая воду + масла она жрет больше чем солярки + кронштейны задних рессор самодельные, но кривые
    "Русские своих не обманывают..."(с)
    И ценниг-то какой гуманный...Сарайка задаром...)

  15. #15

    Адрес: Сарапул
    Сообщений
    9,830
    Больше 10 лет на форуме
    Сообщение от Камазыч Посмотреть сообщение
    "Русские своих не обманывают..."(с)
    И ценниг-то какой гуманный...Сарайка задаром...)
    И состояние-"отличное", точно-"Русские своих не обманывают..."(с)
    MAN 12.224 Опыт - это такая вещь, которая появляется сразу после того, как была нужна.

  16. #16

    Сообщений
    10,504
    Больше 7 лет на форуме
    УГОНУ НЕ ПОДЛЕЖИТ...
    "Сколько у государства не воруй - своего не вернешь..."

  17. #17

    Адрес: Московская область
    Сообщений
    1,830
    Больше 10 лет на форуме
    Jorg, я устранил конкретную проблему сажевого, с которой он приехал. То что он не захотел чинить топливную, которой конец... я в чем виноват? Как обычно укатают машину в ноль, когда она заводится тока с буксира уже, а потом округляют глаза от цен на запчасти и от того что менять нужно целую кучу всего. Спрашиваеш а давно ли горит чек... канеш давно.. горит - да и хрен с ним, машина едет ну и ладно, а потом печальные последствия....

    Последний экземпляр вообще убил на повал... приехал на легковой, типа форвард и нужно отключить сажевый. Говорю пригоняй (он местный). Приехал.... сажевого там с завода нет и никогда небыло.... Оказалось что народ начитался интернета и думает что кроме сажевого в исузу просто в принципе нечего ломатся - ЭТО НЕ ТАК!. Итог... куча денег на ремонт топливной, и сумма там в два с копейками раза выше чем за сажевый... не, не за работу - за запчасти..... А машинка эта уже отказывалась даже с эфира заводится, только примерно километр тащить на тросе и тогда заводилась.... и скока так ее азводили - я сказать не могу. Так что кто будет читать из интернета еще, могу сказать - проблемы с сажевым фильтром - это как правило ПОСЛЕДСТВИЯ неисправной топливной, а не причина!


    valeraussuriysk , я ничем не помогу, потому как не работаю с атмелами, во вторых я не СИшник...
    Последний раз редактировалось homer111; 29.02.2012 в 14:37.

  18. #18
    Аватар для канефрон
    Сообщений
    6,755
    Больше 7 лет на форуме
    Сообщение от valeraussuriysk Посмотреть сообщение
    Под пивко займусь просветительской деятельностью.Очень добрый:)

    МК - микросхема МикроКонтроллер - посуществу компьютер со своим АЛУ,таймерами и куевой хучей прибамбасов.
    Просвещай,учиться никогда не поздно,хотя не зная простого,сложное можно и не понять.

  19. #19

    Адрес: Московская область
    Сообщений
    1,830
    Больше 10 лет на форуме
    Для протеуса напиши сначала простую моргалку светодиодом. У любого МК, есть куча регистров, которые пишутся в конфиг слово в протеусе. Без них камень будет молчать при абсолютно рабочей программе. Также в протеусе укажи в настройке камня частоту 8 мег, как указано внутри исходника, иначе программа то запустится, но все временные интервалы будут нарушены и сбиты, работа таймеров также будет очень не корректна.

  20. #20
    Аватар для valeraussuriysk
    Адрес: Уссурийск Прим.Кра
    Сообщений
    1,377
    Больше 3 лет на форуме
    Точно,фьюзик надо было настроить на внутренний генератор 8МГц.

    А если я хочу одометр сделать.Какое деление шкалы сделать? 1 км?100м?10м? Хочется спидометр так сказать универсальный сделать.
    И чего-бы ещще в него впихнуть?Может регулировку подсветки приборки?

Страница 1 из 2 12 ПоследняяПоследняя
Вернуться к списку тем

 
 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189