С++ to HEX

Обсуждаем цифровые устройства...
Ответить
Открыл глаза
Аватара пользователя
Сообщения: 61
Зарегистрирован: Вт мар 01, 2011 13:51:57

Сообщение zip900 »

Всем привет, ребят подскажите пожалуйста есть код прошивки в текстовом файле написанный на с++

Код: Выделить всё

/*****************************************************
Project : PWM Bipolar Locomotive Controller; 
Version : 2.00 for MOSFET bridge with overcurrent protection.
Date    : 18.04.2007
Author  : Yuri V. Kalashnikov;                            
Company : KRTPC 
Comments: Bipolar PWM Power Supply Controller
 for railway models; 

questions you can send by e-mail: tigerail@yandex.ru


Chip type           : ATtiny13
Clock frequency     : 9,600000 MHz internal RC option;
                      CKSEL1..0 = 10; 
Memory model        : Tiny
External SRAM size  : 0
Data Stack size     : 16
*****************************************************/

#include <tiny13.h>
#include <delay.h>

void main(void)
{
int k,i;
int AH, AL;
int OC;


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

// Input/Output Ports initialization
// Port B initialization
// Func5=In Func4=Out Func3=In Func2=In Func1=Out Func0=Out 
// State5=T State4=0 State3=T State2=T State1=0 State0=0 
PORTB=0x00;
DDRB=0x17;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0A output: Disconnected
// OC0B output: Disconnected
TCCR0A=0x00;
TCCR0B=0x00;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;

// External Interrupt(s) initialization
// INT0: Off
// Interrupt on any change on pins PCINT0-5: Off
GIMSK=0x00;
MCUCR=0x00;

// Timer/Counter 0 Interrupt(s) initialization
TIMSK0=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
ACSR=0x80;
ADCSRB=0x00;


ADMUX=0x03; // Vcc as VRef, ADC connect to PB3 pin

ADCSRA=86;  // ADC enable, ADC CLK divider=0b110 (9600/64=150kHz)

OC=1;

while (OC==1)
  { // overcurrent/START cycle
    ADCSRA=0xC6; //START conversion
    PORTB.2=0;
    delay_ms(300);
    PORTB.2=1;
    delay_ms(300); 
    
    // ADC result performing
    AL=ADCL; // extract low part ADC result;
    AH=ADCH; // extract high part ADC result;
    k=AH*256; // shift high part to most significant byte;
    k=k+AL; // add low byte; 
    
    if ((k>412) && (k<612))
      {                   
        OC=0; // USER set trimmer to STOP position, out from cycle
      }
  }

 

while (1)
  { 
       ADCSRA=0xC6; //START conversion
       

       if ((k>412) && (k<612)) // CENTRAL "STOP" trimmer position

         {
           PORTB.2=0; // LED "STOP" is lighting;
           PORTB.1=0;
           PORTB.0=0;
         }
         else  //  412<k<612
           {
             PORTB.2=1; // LED "STOP" is OFF; 
             
             if (k<=412)  // RIGHT-turned trimmer position;
               {
                 k=412-k;

                 // Pulse Width Modulation cycles "FORWARD";
                 for(i=1; i<=k; i=i+1)
                   {
                     PORTB.0=1;
                     delay_us(10); 
                   }
                 for(i=k; i<=412; i=i+1)
                   {
                     PORTB.0=0;
                     delay_us(10);
                   }    
               
               } //(k<=412)         
               
             if(k>=612)    // LEFT-turned trimmer position; 
               {
                 k=k-612;
                 // Pulse Width Modulation cycles "BACK"; 
                 for(i=1; i<=k; i=i+1)
                   {
                    PORTB.1=1;
                    delay_us(10); 
                   }
                 for(i=k; i<=412; i=i+1)
                   {
                     PORTB.1=0;
                     delay_us(10);
                   }    
               } //(k>=612)
          
           } // else
       

       AL=ADCL; // extract low part ADC result;
       AH=ADCH; // extract high part ADC result;
       k=AH*256; // shift high part to most significant byte;
       k=k+AL; // add low byte; 
  };// while
}   // main
Вот мне надо прошить его в микруху ATTINY13 насколько я понимаю его сначала надо скомпилить в HEX файл а потом зашиввать CodeVisionAVR, Pony-Prog или AVReal по вкусу. Ну так вот как перевести из сишного файла или txt в HEX не устанавливая с++. У меня есть билдер но под вин 7 он както неработает оживить можно путем колдований но неуверен в надежности результата. Помогите пожалуйста.
Реклама
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1590
Зарегистрирован: Вс июн 24, 2012 16:07:00
Откуда: Лен.Обл.

Сообщение da-nie »

Ну так вот как перевести из сишного файла или txt в HEX не устанавливая с++. У меня есть билдер но под вин 7 он както неработает оживить можно путем колдований но неуверен в надежности результата. Помогите пожалуйста
Это невозможно без компилятора для выбранного микроконтроллера. И после билдера тоже работать не будет никогда - машинный код несколько разный.
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 6325
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Сообщение Jack_A »

Блин, да таку эляментарщину перекинуть на ассемблер - пара пустяков. А уж ассемблер любая Студия примет.
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Сообщение a_skr »

что мешает в CodeVision скомпилировать? тем более, в нем и написано.
все компилируется без ошибок.
да, никаких плюс-плюсов тут нет. ;)
Вложения
777.zip
(3.79 КБ) 162 скачивания
Реклама
Эиком - электронные компоненты и радиодетали
Открыл глаза
Аватара пользователя
Сообщения: 61
Зарегистрирован: Вт мар 01, 2011 13:51:57

Сообщение zip900 »

a_skr писал(а):что мешает в CodeVision скомпилировать? тем более, в нем и написано.
все компилируется без ошибок.
да, никаких плюс-плюсов тут нет. ;)
Большое спасибо! так синкасис же сишный )
Реклама
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

есть код прошивки в текстовом файле написанный на с++
Где вы тут плюсы увидели? Чистый Си.
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 61
Зарегистрирован: Вт мар 01, 2011 13:51:57

Сообщение zip900 »

ploop писал(а):
есть код прошивки в текстовом файле написанный на с++
Где вы тут плюсы увидели? Чистый Си.
Имелось ввиду сама программа, с++ же может компилить сишный код
Ответить

Вернуться в «Цифровая техника»