This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS:转换为十进制到六进制时出现问题

Guru**** 2608275 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/634550/ccs-problem-with-convertion-to-dec-to-hexa

主题中讨论的其他部件:TM4C123GH6PM

工具/软件:Code Composer Studio

我需要此计划的帮助

我必须在显示屏上显示值,但显示hexa

如何执行此操作?

这是我的代码

#include <stdint.h>
#include <stdbool.h>
#include "inc/tm4c123gh6p.h"
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/sysctl.h"
#include "driverlib/interrupT.h"
#include "driverlib/gPI.h"
#include "driverlib/timer.h"
#include "driverlib/adc.h"
#include "driverlib/debug.h"


UINT8_t milu;
uINT8_t通用;
uINT8_t决定;
UINT8_t百分比;
UINT8_t CATODO;
uINT32_t ui32ADC0Value[1];
易失性UINT32_t电位器;
内部主(无效)

   uINT32_t ui32Period;
   SysCltlClockSet(sysctl_SYSDIV_5|sysctl_use_PLL|sysctl_XTAL_16MHz|sysctl_OSC主);
   SysCtlPeripheralEnable(sysctl_Periph_TIMER0);                                      //启用计时器0
   TimerConfigure(TIMER0_base, timer_CFG_Periodic);                                   //为周期信号配置计时器0
   ui32Period =(SysClockGatet()/500);                                          // calcular frecuencia en base a la frecuencia de tiempo del sistema y se divide entre 2 para asegurar una derseccada mitad de ciclo
   TimerLoadSet (TIMER0_BASE,TIMER_A,ui32Period -1);                                 //选择菜单选项a al定时器A
   IntEnable (INT_TIMER0A);                                                            //使用habilita la interrupion del timer 0A
   TimerIntEnable(TIMER0_base, timer_TIMA_timeout);                                   // se配置la spercion del timer
   IntMasterEnable();                                                                 //se habilitann las interrenciones
   TimerEnable(TIMER0_BASE,TIMER_A);                                                 //使用后置时间器0并基于时间
   SysCtlPeripheralEnable(sysctl_Periph_GPIOB);
   SysCtlPeripheralEnable(sysctl_Periph_ADC0);
   SysCtlPeripheralEnable(sysctl_Periph_GPIOE);
   GPIOPinTypeADC (GPIO _PORT_BASE,GPIO PIN_3);
   ADCsequenceConfigure(ADC0_base, 3, ADC_TRIGG_PROCESSOR, 0);
   ADCsequenceStepConfigure(ADC0_BASE,3,0, ADC_CTL_CH0 | ADC_CTL_IE |ADC_CTL_END;

   SysCtlPeripheralEnable(sysctl_Periph_gpicoc);
   GPIOPinTypeGPIOOutput (GPIO_PORTC_BASE,GPIO PIN_4|GPIO PIN_5|GPIO PIN_6|GPIO PIN_7);
   GPIOPinTypeGPIOOutput (GPIO_PORTB_BASE,GPIO PIN_1|GPIO PIN_2|GPIO PIN_3|GPIO PIN_4|GPIO PIN_5|GPIO PIN_6|GPIO PIN_7);
   ADCSequenceEnable(ADC0_base, 3);
   同时(1)
   {
       ADCIntClear (ADC0_BASE,3);
       ADCProcessorTrigger (ADC0_BASE,3);

       while (!ADCIntStatus (ADC0_BASE,3,FALSE))
         {
         }


         ADCSequenceDataSet(ADC0_Base,3, ui32ADC0Value);//在ui32ADC0Value上查看
         POT=ui32ADC0Value[0];

         Milu=pot/1000;
         C%=(平方千米*1000))/100;
         (dec=(pot-((milu*1000)+(cent*100)))/10;
         uni=POP%10;




       如果(Catodo>3){catodo=0;
       }

       开关(CATODO)
       {
       判例0:视觉(通用);
               GPIOPinWrite (GPIO _PORTC_BASE,GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN _7,0x80);
               中断;
       案例1:视觉(决定);
               GPIOPinWrite (GPIO _PORTC_BASE,GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN _7,0x40);
               中断;
       案例2:视觉(百分比);
               GPIOPinWrite (GPIO _PORTC_BASE,GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN _7,0x20);
               中断;
       案例3:视觉(米卢);
               GPIOPinWrite (GPIO _PORTC_BASE,GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN _7,0x10);
               中断;
       }
   }
}
void Timer0IntHandler(void)

   TimerIntClear (TIMER0_BASE,TIMER_TIMA_TIMEOUT);                        //清除计时器中断
   catodo=catodo+1;
}

void visual (集成数字)

   开关(旋钮)
           {
           案例0:
               GPIOPinWrite (GPIO _PORTB_BASE,GPIO PIN _1|GPIO PIN _2|GPIO PIN _3|GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN 7126);
               中断;
           案例1:
               GPIOPinWrite (GPIO _PORTB_BASE,GPIO PIN _1|GPIO PIN _2|GPIO PIN _3|GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN _7,12);

               中断;

           案例2:
               GPIOPinWrite (GPIO _PORTB_BASE,GPIO PIN _1|GPIO PIN _2|GPIO PIN _3|GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN 7182);

               中断;

           案例3:
               GPIOPinWrite (GPIO _PORTB_BASE,GPIO PIN _1|GPIO PIN _2|GPIO PIN _3|GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN 7158);
               中断;

           案例4:
               GPIOPinWrite (GPIO _PORTB_BASE,GPIO PIN _1|GPIO PIN _2|GPIO PIN _3|GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN 7204);

               中断;

           案例5:
               GPIOPinWrite (GPIO _PORTB_BASE,GPIO PIN _1|GPIO PIN _2|GPIO PIN _3|GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN 7218);


               中断;

           案例6:
               GPIOPinWrite (GPIO _PORTB_BASE,GPIO PIN _1|GPIO PIN _2|GPIO PIN _3|GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN 7250);


               中断;

           案例7:
               GPIOPinWrite (GPIO _PORTB_BASE,GPIO PIN _1|GPIO PIN _2|GPIO PIN _3|GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN _7,14);


               中断;

           案例8:
               GPIOPinWrite (GPIO _PORTB_BASE,GPIO PIN _1|GPIO PIN _2|GPIO PIN _3|GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN 7254);
               中断;

           案例9:
               GPIOPinWrite (GPIO _PORTB_BASE,GPIO PIN _1|GPIO PIN _2|GPIO PIN _3|GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN 7206);


               中断;
           案例10:
                           GPIOPinWrite (GPIO _PORTB_BASE,GPIO PIN _1|GPIO PIN _2|GPIO PIN _3|GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN 7238);


                           中断;
           案例11:
                           GPIOPinWrite (GPIO _PORTB_BASE,GPIO PIN _1|GPIO PIN _2|GPIO PIN _3|GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN 7248);


                           中断;
           案例12:
                           GPIOPinWrite (GPIO _PORTB_BASE,GPIO PIN _1|GPIO PIN _2|GPIO PIN _3|GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN 7114);


                           中断;
           案例13:
                           GPIOPinWrite (GPIO _PORTB_BASE,GPIO PIN _1|GPIO PIN _2|GPIO PIN _3|GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN 7188);


                           中断;
           案例14:
                           GPIOPinWrite (GPIO _PORTB_BASE,GPIO PIN _1|GPIO PIN _2|GPIO PIN _3|GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN 7242);


                           中断;
           案例15:
                           GPIOPinWrite (GPIO _PORTB_BASE,GPIO PIN _1|GPIO PIN _2|GPIO PIN _3|GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN 7226);


                           中断;
           默认:
               GPIOPinWrite (GPIO _PORTB_BASE,GPIO PIN _1|GPIO PIN _2|GPIO PIN _3|GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN _7,0xFF);


               中断;
           }
   }

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不清楚您的问题。 您拥有什么以及希望如何显示?

    请记住,计算机以二进制存储内容。 因此它已经是十六进制:

    UINT8_t A = 11;// A现在包含0b0.1011万或0x0B
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此程序显示ADC的值,但在我的显示屏中,我需要转换此值并以十六进制形式显示
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    没有要转换的内容。POT已经是二进制的。只需将其分解为十六进制数字(每个4位)并显示它们。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,

    >>但在我的显示中为十进制,
    根据您的代码和这种自信判断,您似乎正在向7段显示屏书写,不是吗? 如果您已经在While循环中分隔每个数字,则同样的逻辑也适用于十六进制-提示:变量"pot"已经包含以二为单位的表示,如上面提到的Keith。

    这是一个编码问题,而不是CCS或TM4C问题。

    ——干杯
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    很抱歉,我是这个论坛的新用户,我可以解决这个问题

    #include <stdint.h>
    #include <stdbool.h>
    #include "inc/tm4c123gh6p.h"
    #include "inc/hw_memmap.h"
    #include "inc/hw_types.h"
    #include "driverlib/sysctl.h"
    #include "driverlib/interrupT.h"
    #include "driverlib/gPI.h"
    #include "driverlib/timer.h"
    #include "driverlib/adc.h"
    #include "driverlib/debug.h"

    易失性UINT32_t商;
    长余数;
    int i=1;
    int j=0;
    字符十六进制数[100];
    int hexa;
    UINT8_t milu;
    uINT8_t通用;
    uINT8_t决定;
    UINT8_t百分比;
    UINT8_t CATODO;
    uINT32_t ui32ADC0Value[1];
    易失性UINT32_t电位器;
    内部主(无效)

       uINT32_t ui32Period;
       SysCltlClockSet(sysctl_SYSDIV_5|sysctl_use_PLL|sysctl_XTAL_16MHz|sysctl_OSC主);
       SysCtlPeripheralEnable(sysctl_Periph_TIMER0);                                      //启用计时器0
       TimerConfigure(TIMER0_base, timer_CFG_Periodic);                                   //为周期信号配置计时器0
       ui32Period =(SysClockGatet()/500);                                          // calcular frecuencia en base a la frecuencia de tiempo del sistema y se divide entre 2 para asegurar una derseccada mitad de ciclo
       TimerLoadSet (TIMER0_BASE,TIMER_A,ui32Period -1);                                 //选择菜单选项a al定时器A
       IntEnable (INT_TIMER0A);                                                            //使用habilita la interrupion del timer 0A
       TimerIntEnable(TIMER0_base, timer_TIMA_timeout);                                   // se配置la spercion del timer
       IntMasterEnable();                                                                 //se habilitann las interrenciones
       TimerEnable(TIMER0_BASE,TIMER_A);                                                 //使用后置时间器0并基于时间
       SysCtlPeripheralEnable(sysctl_Periph_GPIOB);
       SysCtlPeripheralEnable(sysctl_Periph_ADC0);
       SysCtlPeripheralEnable(sysctl_Periph_GPIOE);
       GPIOPinTypeADC (GPIO _PORT_BASE,GPIO PIN_3);
       ADCsequenceConfigure(ADC0_base, 3, ADC_TRIGG_PROCESSOR, 0);
       ADCsequenceStepConfigure(ADC0_BASE,3,0, ADC_CTL_CH0 | ADC_CTL_IE |ADC_CTL_END;

       SysCtlPeripheralEnable(sysctl_Periph_gpicoc);
       GPIOPinTypeGPIOOutput (GPIO_PORTC_BASE,GPIO PIN_4|GPIO PIN_5|GPIO PIN_6|GPIO PIN_7);
       GPIOPinTypeGPIOOutput (GPIO_PORTB_BASE,GPIO PIN_1|GPIO PIN_2|GPIO PIN_3|GPIO PIN_4|GPIO PIN_5|GPIO PIN_6|GPIO PIN_7);
       ADCSequenceEnable(ADC0_base, 3);
       同时(1)
       {
           ADCIntClear (ADC0_BASE,3);
           ADCProcessorTrigger (ADC0_BASE,3);

           while (!ADCIntStatus (ADC0_BASE,3,FALSE))
             {
             }


             ADCSequenceDataSet(ADC0_Base,3, ui32ADC0Value);//在ui32ADC0Value上查看
             POT=ui32ADC0Value[0];



             c%= POT/0x100;
             DEC=POT/0x10;
             UNI=POT/0x01;




           如果(Catodo>3){catodo=0;
           }

           开关(CATODO)
           {
           判例0:视觉(通用);
                   GPIOPinWrite (GPIO _PORTC_BASE,GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN _7,0x80);
                   中断;
           案例1:视觉(决定);
                   GPIOPinWrite (GPIO _PORTC_BASE,GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN _7,0x40);
                   中断;
           案例2:视觉(百分比);
                   GPIOPinWrite (GPIO _PORTC_BASE,GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN _7,0x20);
                   中断;
           案例3:视觉(米卢);
                   GPIOPinWrite (GPIO _PORTC_BASE,GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN _7,0x10);
                   中断;
           }
       }
    }
    void Timer0IntHandler(void)

       TimerIntClear (TIMER0_BASE,TIMER_TIMA_TIMEOUT);                        //清除计时器中断
       catodo=catodo+1;
    }

    void visual (集成数字)

       开关(旋钮)
               {
               案例0x00:
                   GPIOPinWrite (GPIO _PORTB_BASE,GPIO PIN _1|GPIO PIN _2|GPIO PIN _3|GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN 7126);
                   中断;
               案例0x01:
                   GPIOPinWrite (GPIO _PORTB_BASE,GPIO PIN _1|GPIO PIN _2|GPIO PIN _3|GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN _7,12);

                   中断;

               案例0x02:
                   GPIOPinWrite (GPIO _PORTB_BASE,GPIO PIN _1|GPIO PIN _2|GPIO PIN _3|GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN 7182);

                   中断;

               案例0x03:
                   GPIOPinWrite (GPIO _PORTB_BASE,GPIO PIN _1|GPIO PIN _2|GPIO PIN _3|GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN 7158);
                   中断;

               案例0x04:
                   GPIOPinWrite (GPIO _PORTB_BASE,GPIO PIN _1|GPIO PIN _2|GPIO PIN _3|GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN 7204);

                   中断;

               案例0x05:
                   GPIOPinWrite (GPIO _PORTB_BASE,GPIO PIN _1|GPIO PIN _2|GPIO PIN _3|GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN 7218);


                   中断;

               案例0x06:
                   GPIOPinWrite (GPIO _PORTB_BASE,GPIO PIN _1|GPIO PIN _2|GPIO PIN _3|GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN 7250);


                   中断;

               案例0x07:
                   GPIOPinWrite (GPIO _PORTB_BASE,GPIO PIN _1|GPIO PIN _2|GPIO PIN _3|GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN _7,14);


                   中断;

               案例0x08:
                   GPIOPinWrite (GPIO _PORTB_BASE,GPIO PIN _1|GPIO PIN _2|GPIO PIN _3|GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN 7254);
                   中断;

               案例0x09:
                   GPIOPinWrite (GPIO _PORTB_BASE,GPIO PIN _1|GPIO PIN _2|GPIO PIN _3|GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN 7206);


                   中断;
               案例0x0A:
                               GPIOPinWrite (GPIO _PORTB_BASE,GPIO PIN _1|GPIO PIN _2|GPIO PIN _3|GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN 7238);


                               中断;
               案例0x0B:
                               GPIOPinWrite (GPIO _PORTB_BASE,GPIO PIN _1|GPIO PIN _2|GPIO PIN _3|GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN 7248);


                               中断;
               案例0x0C:
                               GPIOPinWrite (GPIO _PORTB_BASE,GPIO PIN _1|GPIO PIN _2|GPIO PIN _3|GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN 7114);


                               中断;
               案例0x0D:
                               GPIOPinWrite (GPIO _PORTB_BASE,GPIO PIN _1|GPIO PIN _2|GPIO PIN _3|GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN 7188);


                               中断;
               案例0x0E:
                               GPIOPinWrite (GPIO _PORTB_BASE,GPIO PIN _1|GPIO PIN _2|GPIO PIN _3|GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN 7242);


                               中断;
               案例0x0F:
                               GPIOPinWrite (GPIO _PORTB_BASE,GPIO PIN _1|GPIO PIN _2|GPIO PIN _3|GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN 7226);


                               中断;
               默认:
                   GPIOPinWrite (GPIO _PORTB_BASE,GPIO PIN _1|GPIO PIN _2|GPIO PIN _3|GPIO PIN _4|GPIO PIN _5|GPIO PIN _6|GPIO PIN _7,0xFF);


                   中断;
               }
       }

    很抱歉给您带来不便,我是tm4c123和代码编写器的新用户 

    :D
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    抱歉,这是我的解决方案

    Milu=pot/4096;
    Ce=(平方(milu*4096))/256;
    (dec=(pot-((milu*4096)+(cent*256)))/16;
    uni=POP%10;


    但我有一个问题,在我的显示屏上,我看不到单位为什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    对于十六进制,你只需要换档和掩码

    单位= POT和0xF;
    %=(POT >>>4)和0xF;

    ...