Advertisement
Guest User

Untitled

a guest
Jun 14th, 2018
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.13 KB | None | 0 0
  1. // Alunos: Tiago Knorst, Yuri Oliveira
  2. #include <asf.h>
  3. #include <stdio.h>
  4. #include <string.h>
  5. #include <stdlib.h>
  6.  
  7. typedef struct {
  8. char user[50];
  9. int password;
  10. char portas[50];
  11. } ficha_user;
  12.  
  13. ficha_user ficha[3];
  14.  
  15. void configure_usart(void);
  16.  
  17. struct usart_module usart_instance;
  18. struct usart_config usart_cfg;
  19.  
  20. void configure_usart(void)
  21. {
  22. //! [setup_config]
  23. struct usart_config config_usart;
  24. //! [setup_config]
  25. //! [setup_config_defaults]
  26. usart_get_config_defaults(&config_usart);
  27. //! [setup_config_defaults]
  28.  
  29. //! [setup_change_config]
  30. config_usart.baudrate = 9600;
  31. config_usart.mux_setting = EDBG_CDC_SERCOM_MUX_SETTING;
  32. config_usart.pinmux_pad0 = EDBG_CDC_SERCOM_PINMUX_PAD0;
  33. config_usart.pinmux_pad1 = EDBG_CDC_SERCOM_PINMUX_PAD1;
  34. config_usart.pinmux_pad2 = EDBG_CDC_SERCOM_PINMUX_PAD2;
  35. config_usart.pinmux_pad3 = EDBG_CDC_SERCOM_PINMUX_PAD3;
  36. //! [setup_change_config]
  37.  
  38. //! [setup_set_config]
  39. while (usart_init(&usart_instance,
  40. EDBG_CDC_MODULE, &config_usart) != STATUS_OK) {
  41. }
  42. //! [setup_set_config]
  43.  
  44. //! [setup_enable]
  45. usart_enable(&usart_instance);
  46. //! [setup_enable]
  47. }
  48.  
  49. void configure_ficha(void)
  50. {
  51. ficha[0].user = "diretor";
  52. ficha[0].password = 9999;
  53. ficha[0].portas = "Portas 1,2,3";
  54.  
  55. ficha[1].user = "contador";
  56. ficha[1].password = 4321;
  57. ficha[1].portas = "Portas 1,3";
  58.  
  59. ficha[2].user = "estagiario";
  60. ficha[2].password = 1234;
  61. ficha[2].portas = "Portas 1";
  62. }
  63.  
  64. int main(void)
  65. {
  66. system_init();
  67.  
  68. board_init();
  69.  
  70. configure_usart();
  71.  
  72. configure_ficha();
  73.  
  74. usart_enable(&usart_instance);
  75.  
  76. stdio_serial_init(&usart_instance, EDBG_CDC_MODULE, &usart_cfg);
  77.  
  78. int i=0, estado = 0, senha_atual = 0, erro = 0;
  79. char user_atual;
  80.  
  81. while(1){
  82.  
  83. switch(estado) {
  84. //ESPERA USER//
  85. case 0:
  86. printf("Digite um usuario valido:\r\n");
  87.  
  88. scanf("%s", &user_atual);
  89.  
  90. printf("Usuario= %s\r\n",user_atual);
  91.  
  92. estado = 1;
  93.  
  94. break;
  95. //VERFICA USER//
  96. case 1:
  97. for(i=0;i<3;i++)
  98. if(user_atual == ficha[i].user)
  99. estado = 2;
  100. else
  101. estado = 0;
  102. break;
  103. //ESPERA SENHA//
  104. case 2:
  105.  
  106. printf("Digite uma senha valida:\r\n");
  107.  
  108. scanf("%d", &senha_atual);
  109.  
  110. estado = 3;
  111.  
  112. break;
  113. //VERIFICA SENHA//
  114. case 3:
  115.  
  116. for(i=0;i<3;i++)
  117. if(user_atual == ficha[i].password)
  118. estado = 4;
  119. else
  120. estado = 2;
  121. break;
  122. //SENHA VALIDA//
  123. case 4:
  124.  
  125. printf("Senha= %d\r\n",senha_atual);
  126. printf("Acesso Permitido!\r\n");
  127.  
  128. delay_s(5);
  129.  
  130. erro = 0;
  131. senha_atual = 0;
  132. estado = 0;
  133.  
  134. break;
  135. //SENHA INVALIDA//
  136. case 5:
  137. erro = erro++;
  138.  
  139. printf("Senha= %d\r\n",senha_atual);
  140. printf("Acesso Negado!\r\n");
  141.  
  142. if(erro < 3)
  143. delay_s(2);
  144.  
  145. else{
  146. printf("Muitas tentativas erradas!\r\n");
  147. printf("Aguarde alguns segundos para tentar novamente!\r\n");
  148. delay_s(6);
  149. erro = 0;
  150. estado = 0;
  151. }
  152.  
  153. senha_atual = 0;
  154. estado = 2;
  155.  
  156. break;
  157. //ERRO INESPERADO//
  158. default: printf("ERRO %d\r\n", estado);
  159. }
  160. }
  161.  
  162. return 0;
  163. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement