Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Alunos: Tiago Knorst, Yuri Oliveira
- #include <asf.h>
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- typedef struct {
- char user[50];
- int password;
- char portas[50];
- } ficha_user;
- ficha_user ficha[3];
- void configure_usart(void);
- struct usart_module usart_instance;
- struct usart_config usart_cfg;
- void configure_usart(void)
- {
- //! [setup_config]
- struct usart_config config_usart;
- //! [setup_config]
- //! [setup_config_defaults]
- usart_get_config_defaults(&config_usart);
- //! [setup_config_defaults]
- //! [setup_change_config]
- config_usart.baudrate = 9600;
- config_usart.mux_setting = EDBG_CDC_SERCOM_MUX_SETTING;
- config_usart.pinmux_pad0 = EDBG_CDC_SERCOM_PINMUX_PAD0;
- config_usart.pinmux_pad1 = EDBG_CDC_SERCOM_PINMUX_PAD1;
- config_usart.pinmux_pad2 = EDBG_CDC_SERCOM_PINMUX_PAD2;
- config_usart.pinmux_pad3 = EDBG_CDC_SERCOM_PINMUX_PAD3;
- //! [setup_change_config]
- //! [setup_set_config]
- while (usart_init(&usart_instance,
- EDBG_CDC_MODULE, &config_usart) != STATUS_OK) {
- }
- //! [setup_set_config]
- //! [setup_enable]
- usart_enable(&usart_instance);
- //! [setup_enable]
- }
- void configure_ficha(void)
- {
- ficha[0].user = "diretor";
- ficha[0].password = 9999;
- ficha[0].portas = "Portas 1,2,3";
- ficha[1].user = "contador";
- ficha[1].password = 4321;
- ficha[1].portas = "Portas 1,3";
- ficha[2].user = "estagiario";
- ficha[2].password = 1234;
- ficha[2].portas = "Portas 1";
- }
- int main(void)
- {
- system_init();
- board_init();
- configure_usart();
- configure_ficha();
- usart_enable(&usart_instance);
- stdio_serial_init(&usart_instance, EDBG_CDC_MODULE, &usart_cfg);
- int i=0, estado = 0, senha_atual = 0, erro = 0;
- char user_atual;
- while(1){
- switch(estado) {
- //ESPERA USER//
- case 0:
- printf("Digite um usuario valido:\r\n");
- scanf("%s", &user_atual);
- printf("Usuario= %s\r\n",user_atual);
- estado = 1;
- break;
- //VERFICA USER//
- case 1:
- for(i=0;i<3;i++)
- if(user_atual == ficha[i].user)
- estado = 2;
- else
- estado = 0;
- break;
- //ESPERA SENHA//
- case 2:
- printf("Digite uma senha valida:\r\n");
- scanf("%d", &senha_atual);
- estado = 3;
- break;
- //VERIFICA SENHA//
- case 3:
- for(i=0;i<3;i++)
- if(user_atual == ficha[i].password)
- estado = 4;
- else
- estado = 2;
- break;
- //SENHA VALIDA//
- case 4:
- printf("Senha= %d\r\n",senha_atual);
- printf("Acesso Permitido!\r\n");
- delay_s(5);
- erro = 0;
- senha_atual = 0;
- estado = 0;
- break;
- //SENHA INVALIDA//
- case 5:
- erro = erro++;
- printf("Senha= %d\r\n",senha_atual);
- printf("Acesso Negado!\r\n");
- if(erro < 3)
- delay_s(2);
- else{
- printf("Muitas tentativas erradas!\r\n");
- printf("Aguarde alguns segundos para tentar novamente!\r\n");
- delay_s(6);
- erro = 0;
- estado = 0;
- }
- senha_atual = 0;
- estado = 2;
- break;
- //ERRO INESPERADO//
- default: printf("ERRO %d\r\n", estado);
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement