Guest User

Untitled

a guest
Sep 20th, 2024
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.34 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <stdint.h>
  4.  
  5. struct display {
  6. uint8_t data_pin;
  7. uint8_t lacth_pin;
  8. uint8_t clock_pin;
  9.  
  10. uint8_t indicators_num;
  11. uint8_t first_cathode_pin;
  12. uint8_t* indicator_state;
  13.  
  14. };
  15.  
  16. struct display display_create(uint8_t data_pin, uint8_t lacth_pin, uint8_t clock_pin, uint8_t indicators_num, uint8_t first_cathode_pin) {
  17.  
  18. uint8_t* indicator_state = malloc( sizeof(uint8_t) * indicators_num );
  19.  
  20. struct display main_display = {data_pin, lacth_pin, clock_pin, indicators_num, first_cathode_pin, indicator_state};
  21.  
  22. for(uint8_t i = 0; i < indicators_num; i++) {
  23. main_display.indicator_state[i] = 0;
  24. }
  25.  
  26. return main_display;
  27. }
  28.  
  29. void show_number(struct display* main_display, int number ) {
  30.  
  31. for(uint8_t i = 0; i < main_display -> indicators_num; i++) {
  32.  
  33. main_display -> indicator_state[i] = number % 10;
  34.  
  35. digitalWrite(main_display -> latchPin, LOW);
  36. shiftOut( main_display -> data_pin, main_display -> clock_pin, LSBFIRST, main_display -> indicator_state[i] );
  37. digitalWrite(main_display -> latchPin, HIGH);
  38.  
  39. number /= 10;
  40. }
  41.  
  42. }
  43.  
  44. int main() {
  45.  
  46. struct display main_display = display_create(2,3,4,4,5);
  47.  
  48. int number = 13;
  49. show_number(&main_display, number);
  50.  
  51. }
  52.  
Advertisement
Add Comment
Please, Sign In to add comment