Перейти к содержанию

skripach

Members
  • Постов

    175
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные skripach

  1. 18 минут назад, forestdozor сказал:

    interrupt [TIM1_OVF] void timer1_ovf_isr(void)
    {

    TCNT1H = 0x00;
    TCNT1L = 0x00;

    }

    // Timer1 input capture interrupt service routine
    interrupt [TIM1_CAPT] void timer1_capt_isr(void)
    {
     
           TCNT1H = 0x00;
           TCNT1L = 0x00;           // Это уже уровень танцев с бубном "авось поможет" - не помогает.
       
            current_timp++;          // Все упрощено до максимума. Мне бы он хоть количество периодов для начала...
            
      //  }

    }

    на timer1 два прерывания?

    оставь только

    interrupt [TIM1_CAPT] void timer1_capt_isr(void)
    {

    // твой код

    }

  2. #define F_CPU 16000000UL //частота МК
    #include <avr/io.h>
    #include <util/delay.h>
    
    #define SPI_PORTX PORTB
    #define SPI_DDRX DDRB
    
    #define SPI_MOSI 3
    #define SPI_SCK 5
    #define SPI_SS 0
    
    int main(void) {
    
      SPI_DDRX |= (1 << SPI_MOSI) | (1 << SPI_SCK) | (1 << SPI_SS);
    
      SPCR = (1 << SPE) | (1 << DORD) | (1 << MSTR) | (0 << CPOL) | (0 << CPHA) | (0 << SPR1) | (1 << SPR0);
      SPSR = (0 << SPI2X);
    
      while(1)
    {
      SPI_PORTX &= ~(1 << SPI_SS);
      SPDR = 254;
      while (!(SPSR & (1 << SPIF)));
      SPI_PORTX |= (1 << SPI_SS);
      _delay_ms(100);
      }
    }

     

  3. если так

    #define F_CPU 16000000UL //частота МК
    
    #define SPI_PORTX PORTB
    #define SPI_DDRX DDRB
    
    #define SPI_MOSI 3
    #define SPI_SCK 5
    #define SPI_SS 0
    
    int main(void) {
    
      SPI_DDRX |= (1 << SPI_MOSI) | (1 << SPI_SCK) | (1 << SPI_SS);
      SPI_PORTX |= (1 << SPI_MOSI) | (1 << SPI_SCK) | (1 << SPI_SS);
    
      SPCR = (1 << SPE) | (1 << DORD) | (1 << MSTR) | (0 << CPOL) | (0 << CPHA) | (0 << SPR1) | (1 << SPR0);
      SPSR = (0 << SPI2X);
    
      while(1)
    {
      SPI_PORTX &= ~(1 << SPI_SS);
      SPDR = 254;
      while (!(SPSR & (1 << SPIF)));
      SPI_PORTX |= (1 << SPI_SS);
      _delay_ms(100);
      }
    }

     

  4. 9 минут назад, Securety сказал:

    Также есть PWRTE — очередной таймер он включен в прошивке.

     

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

    Думаю проблема в нём где он зашит? хорошо возможно я его откл. но хотелось бы понять где он в коде и как его менять?

    вот здесь

    __config 0x3F84
    ; _CPD_OFF & _CP_OFF & _BODEN_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF
    ; & _INTRC_OSC_NOCLKOUT
    ; __idlocs 0xFF, 0xFF, 0xFF, 0xFF

  5. 3 минуты назад, IMXO сказал:

    режим LVP , может тоже на него биты конфигурации не влияют?

    Я же спрашивал про HV программирование!!! (а не про LVP)

     

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

    иди матчасть учи

    Ты сперва чИтаТЬ научись!!!!!!!

  6. 17 минут назад, IMXO сказал:

    если че у 628го режимов не два , а три

    Назови мне 3 режим HV программирования!

     

    5 часов назад, IMXO сказал:

    черным по белому пишет конфиг 0x3F10 и биты конфигурации показывает: внутренний осциллятор , внутренний сброс ! после разовой прошивки достучатся до МК можно только при подаче напряжения программирования раньше напряжения питания

    А чушь пишете вы! (вы их хоть раз шили???)

×
×
  • Создать...