estrutura de código

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

estrutura de código

Mensagempor sergiowdl » 27 Jul 2009 08:08

Olá,

Alguem poderia me exemplificar como seria uma melhor estrutura de codigo para um projeto grande em PIC, liguagem = "C" e pouco de assembler ?

Preciso delegar programas desse projeto para outros programadores e ao mesmo tempo preciso explicar como funciona partes dos codigos e não estou sabendo como fazer de uma forma tranquila e facil.
tentei criar um fluxograma do projeto todo, mas para ficar atualizando o fulxograma e o projeto ao mesmo tempo tem sido complicado.

Exite alguma ferramenta que integra um fluxograma ao codigo gerado ?

qual seria a melhor ferramenta para gerar um fluxograma dos codigos ?

grato,
sergio
Avatar do usuário
sergiowdl
Bit
 
Mensagens: 7
Registrado em: 05 Mar 2007 16:21
Localização: petropolis / rj / brasil

Mensagempor tcpipchip » 27 Jul 2009 10:05

Oi...

De uma olhada em UML.

Abraço
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6560
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Re: estrutura de código

Mensagempor Djalma Toledo Rodrigues » 27 Jul 2009 13:49

sergiowdl escreveu:... Preciso delegar programas desse projeto para outros programadores ...

Exite alguma ferramenta que integra um fluxograma ao codigo gerado ?

qual seria a melhor ferramenta para gerar um fluxograma dos codigos ?

grato, sergio

Programação extruturada -- Cada programador cuida de uma
Não -- Isso é função do programador
O Fluxograma antecede ao código e a "melhor feramenta" para cria-lo é o raciocínio lógico mas, existe programa que tem os simbolos do fluxograma, que edita-o digamos assim.
(não passo agora esse programa pois esta em outro HD)
.
Editado pela última vez por Djalma Toledo Rodrigues em 27 Jul 2009 15:37, em um total de 2 vezes.
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Mensagempor EDSONCAN » 27 Jul 2009 14:23

Posso ajuda-lo com alguns conceitos que talvez sirvam para alguma coisa.
- o codigo gerado sempre independe da ferramenta grafica que o representa, ou seja, se for fluxograma esqueça se for usar assember o C e se prenda em representar a ideia.
- a interface entre cada programador tem que ser estanque, voce define os parametros a serem passados e os a serem recebidos, o resto o progrmador se vira, ele não tem que ficar nem sabendo o que outro programador esta fazendo.
A documentação que seguiamos era:
- especificação de requisitos, - define o que seu projeto ira fazer, inteagir, limites mecanicos, leis, homologações e com o passar do tempo acrescentamos, analise concorrentes e variaveis de preço.
- analise de requisitos- analisa as epecificações e verifica se voce consegue atende-las;
- definição do sistema - define como sera o sistemas, soluções de compromisso e etc;
- manual de implementação, nesse ponto voce entra com fluxogramas, cartas de nassi, dicionario de dados e rotinas e por ai vai.
Edson
EDSONCAN
Word
 
Mensagens: 876
Registrado em: 11 Out 2006 14:11

Mensagempor sergiowdl » 27 Jul 2009 16:20

ola, tcpipchip, djalma, edson
grato pelo retorno de voces...

...tcpipchip
sobre UML, eu estudei um pouco sobre UML a muito tempo atrás, comprei até um livro do rational rose, mas nao sei direito como implementar UML com C ou assembler...usando o MPLAB...se puder me mostrar agradeço...

...djalma
eu tenho todo o projeto em um fluxograma, o problema é que ficou grande e dificil de dar manutenção e de separa-lo em partes...talvez pela forma que fiz...ou pela falta de integração com o MPLAB....existe alguma ferramenta de fluxograma que integra com o MPLAB ? ou alguma outra ferramenta similar ao MPLAB que gera fluxograma ou vice-versa....

...edson
interface entre cada programador tem que ser estanque

eu tentei fazer funções com parametros e dessa forma criar uma organização melhor, mas nao consegui ( faltou informação, e talvez voce possa me clarear )...como faço uma funcao passando parametros e que retorne mais de um valor, por exemplo, se passo dois parametros e que estes dois parametros sejam alterados dentro da rotina e retornem com outros valores....em delphi seria assim : function teste(var testando,testando2 : integer) : boolean;

especificação de requisitos, analise de requisitos, definição do sistema, manual de implementação

como voce faz estas definições, utiliza alguma ferramenta para estas especificações ?


....faz uns 3 anos que comecei a mexer com microcontroladores, comecei em assembler e hoje o projeto está quase todo em C, todo feito primeiro em fluxograma e depois desenvolvido no MPLAB. separei o projeto todo em rotnias distintas e em arquivos distintos tambem, já imaginando esta necessidade de delegar programas ou tarefas, mas mesmo assim acredito que exista uma forma melhor de se estruturar o codigo...

grato se houver mais dicas...
sergio
Avatar do usuário
sergiowdl
Bit
 
Mensagens: 7
Registrado em: 05 Mar 2007 16:21
Localização: petropolis / rj / brasil

Mensagempor EDSONCAN » 27 Jul 2009 17:57

Esse era uma parte do modelo OSI de documentação para desenvolvimento, usavamos na USP, não vai me chamar de velho, mas esse modelo e de 1995.
Pensa em uma função simples, que usamos a toda hora por exemplo sprintf, voce modifica um buffer, mas voce não sabe qual e o buffer é passado no momento da formação do codigo pelo compilador, ou seja, é uma função que se usa para n coisas, mas quem a criou não tem a menor ideia para que sera usado.
Quem criou precisa saber somente o que a função ira fazer.
Edson
EDSONCAN
Word
 
Mensagens: 876
Registrado em: 11 Out 2006 14:11

Mensagempor sergiowdl » 27 Jul 2009 18:38

EDSONCAN escreveu:Esse era uma parte do modelo OSI de documentação para desenvolvimento, usavamos na USP, não vai me chamar de velho, mas esse modelo e de 1995.
Pensa em uma função simples, que usamos a toda hora por exemplo sprintf, voce modifica um buffer, mas voce não sabe qual e o buffer é passado no momento da formação do codigo pelo compilador, ou seja, é uma função que se usa para n coisas, mas quem a criou não tem a menor ideia para que sera usado.
Quem criou precisa saber somente o que a função ira fazer.
Edson

Edson, não entendi o que voce falou, pode exemplificar ?
na programação para pic em C, eu consigo fazer funções assim :
int1 teste(char parametro);
int1 teste(char parametro){
parametro = parametro + 10;
}
mas se precisar de ler o valor alterado em parametro fora da rotina, nao consigo, ou nao sei como...isso sem ter que declarar uma variavel externa ou global
Avatar do usuário
sergiowdl
Bit
 
Mensagens: 7
Registrado em: 05 Mar 2007 16:21
Localização: petropolis / rj / brasil

Mensagempor fabim » 27 Jul 2009 20:32

Sergio para fuçancia entre valores de rotinas, tu pode simplesmente usar um ponteiro.
Ou se conhecer asm, pode da uma sapiada no view e ver qual o nome da variavel local da determinada função, que foi alocada na ram com o seu nome em asm.
Por exemplo no mikroC.

void meu_teste(short var_local){
return(var_local + 10);
}

void meu_teste(short var_local){
asm
movlw 10 //pega 10
addwf _farg_local_var_local, f // soma com var_local e guarda nela
endasm;
}

Observe que seja qual for o compilador, se ele tiver o watch e deixar fazer um mixer com asm, de qualquer parte do programa você pode alterar variaveis globais ou locais, dentro ou fora do main.
Basta olhar no watch para saber o nome da variavel na ram, e nunca nunca nunca esquecer de ver em qual banco esta variavel esta.
Ou seja é necessario você saber o endereço que ela ocupa, e dar uma olhada no datasheet para saber em qual banco esta alocada, desta forma você chama o banco, altera o valor, e volta novamente.

Espero ter ajudado,

O inutil fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor sergiowdl » 27 Jul 2009 21:55

fabim escreveu:Sergio para fuçancia entre valores de rotinas, tu pode simplesmente usar um ponteiro.
Ou se conhecer asm, pode da uma sapiada no view e ver qual o nome da variavel local da determinada função, que foi alocada na ram com o seu nome em asm.
Por exemplo no mikroC.

void meu_teste(short var_local){
return(var_local + 10);
}

void meu_teste(short var_local){
asm
movlw 10 //pega 10
addwf _farg_local_var_local, f // soma com var_local e guarda nela
endasm;
}

Observe que seja qual for o compilador, se ele tiver o watch e deixar fazer um mixer com asm, de qualquer parte do programa você pode alterar variaveis globais ou locais, dentro ou fora do main.
Basta olhar no watch para saber o nome da variavel na ram, e nunca nunca nunca esquecer de ver em qual banco esta variavel esta.
Ou seja é necessario você saber o endereço que ela ocupa, e dar uma olhada no datasheet para saber em qual banco esta alocada, desta forma você chama o banco, altera o valor, e volta novamente.

Espero ter ajudado,

O inutil fabim

ola fabim, e valeu pela sua colocação, mas isso eu sei e dessa forma nao adianta para uma tentativa de organizar um codigo....criar as rotinas separadas e poder fazer um projeto mais estruturado...mas mesmo assim grato pela tentativa...
Avatar do usuário
sergiowdl
Bit
 
Mensagens: 7
Registrado em: 05 Mar 2007 16:21
Localização: petropolis / rj / brasil

Mensagempor KILB » 28 Jul 2009 06:45

Exite alguma ferramenta que integra um fluxograma ao codigo gerado ?



Usa o Flowcode !!!


Imagem


Também tem pro ARM





KILB
VENDO BRASILIA 78 - AZUL CALCINHA - RODA GAIUCHA, PNEU TALA LARGA E TOCA FITA RODSTAR, TRATAR NO BUTECO
KILB
Byte
 
Mensagens: 103
Registrado em: 17 Fev 2007 21:52

Mensagempor EDSONCAN » 28 Jul 2009 07:32

Não conheço essa ferramenta e não me refiro a ela em particular, somente a situação me lembrou de um velho conhecido, professor João Jose Neto, reitor da FDTE, na apresentação de uma ferramenta de geração de codigo automatica da IBM.
"Não preciso que alguem gere meus erros eu mesmo sei fazer isso e muito bem."
Acabou com a apresentação da IBM.
Edson
EDSONCAN
Word
 
Mensagens: 876
Registrado em: 11 Out 2006 14:11

Mensagempor sergiowdl » 28 Jul 2009 10:37

KILB escreveu:
Exite alguma ferramenta que integra um fluxograma ao codigo gerado ?

Usa o Flowcode !!!
Imagem
Também tem pro ARM
KILB


valeu KILB, já é um bom começo ter um fluxograma integrado...
para quem quer organizar realmente os codigos, vou dar uma olhada....
http://www.matrixmultimedia.com/index_industrial.php
Avatar do usuário
sergiowdl
Bit
 
Mensagens: 7
Registrado em: 05 Mar 2007 16:21
Localização: petropolis / rj / brasil

Mensagempor KILB » 28 Jul 2009 11:02

Não por isso colega, quando tenho aresposta é uma prazer ajudar!!!

KILB 8)
VENDO BRASILIA 78 - AZUL CALCINHA - RODA GAIUCHA, PNEU TALA LARGA E TOCA FITA RODSTAR, TRATAR NO BUTECO
KILB
Byte
 
Mensagens: 103
Registrado em: 17 Fev 2007 21:52


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x