Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Binary format printing is not working.

Status
Not open for further replies.

baileychic

Advanced Member level 3
Advanced Member level 3
Joined
Aug 2, 2017
Messages
728
Helped
56
Reputation
112
Reaction score
57
Trophy points
28
Activity points
7,033
This is my code to print number in binary format but it is not printing properly. What is the problem ?


Code C - [expand]
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
#include <built_in.h>
 
#define UINT16_TO_BINARY_PATTERN_1 "<%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c>"
#define UINT16_TO_BINARY_PATTERN_2 "<%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c>\r\n"
 
#define UINT16_TO_BINARY(uint16_t) \
  (uint16_t & 0x8000 ? '1' : '0'), \
  (uint16_t & 0x4000 ? '1' : '0'), \
  (uint16_t & 0x2000 ? '1' : '0'), \
  (uint16_t & 0x1000 ? '1' : '0'), \
  (uint16_t & 0x0800 ? '1' : '0'), \
  (uint16_t & 0x0400 ? '1' : '0'), \
  (uint16_t & 0x0200 ? '1' : '0'), \
  (uint16_t & 0x0100 ? '1' : '0'), \
  (uint16_t & 0x0080 ? '1' : '0'), \
  (uint16_t & 0x0040 ? '1' : '0'), \
  (uint16_t & 0x0020 ? '1' : '0'), \
  (uint16_t & 0x0010 ? '1' : '0'), \
  (uint16_t & 0x0008 ? '1' : '0'), \
  (uint16_t & 0x0004 ? '1' : '0'), \
  (uint16_t & 0x0002 ? '1' : '0'), \
  (uint16_t & 0x0001 ? '1' : '0')
  
char txt[128];
unsigned int i = 0;
unsigned int my_16_bit_number = 0;
 
void main() {
 
    CM1CON0 = 0x00;
    CM2CON0 = 0x00;
    
    SLRCON = 0x00;
    
    ANSELA = 0x00;
    ANSELB = 0x00;
    ANSELC = 0x00;
    ANSELD = 0x00;
    ANSELE = 0x00;
    
    TRISA = 0x00;
    TRISB = 0x00;
    TRISC = 0x80;
    TRISD = 0x00;
    TRISE = 0x00;
    
    PORTA = 0x00;
    PORTB = 0x00;
    PORTC = 0x00;
    PORTD = 0x00;
    PORTE = 0x00;
    
    LATA = 0x00;
    LATB = 0x00;
    LATC = 0x00;
    LATD = 0x00;
    LATE = 0x00;
    
    UART1_Init(9600);
    Delay_ms(100);
    
    UART1_Write_Text("16-bit number    rotated number\r");
    UART1_Write_Text("-------------------------------\r");
    
    while(1) {
    
          for(i = 0; i < 65536; i++) {
             my_16_bit_number = i;
             sprintf(txt, UINT16_TO_BINARY_PATTERN_1, UINT16_TO_BINARY(i));
             UART1_Write_Text(txt);
             my_16_bit_number = (my_16_bit_number << 1) | (my_16_bit_number >> 15);
             sprintf(txt, UINT16_TO_BINARY_PATTERN_2, UINT16_TO_BINARY(my_16_bit_number));
             UART1_Write_Text(txt);
             Delay_ms(1500);
          }
    }
}

 

Attachments

  • uart communication.png
    uart communication.png
    34.7 KB · Views: 110

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top