Página 1 de 1

estrutura de código

MensagemEnviado: 27 Jul 2009 08:08
por sergiowdl
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

MensagemEnviado: 27 Jul 2009 10:05
por tcpipchip
Oi...

De uma olhada em UML.

Abraço

Re: estrutura de código

MensagemEnviado: 27 Jul 2009 13:49
por Djalma Toledo Rodrigues
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)
.

MensagemEnviado: 27 Jul 2009 14:23
por EDSONCAN
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

MensagemEnviado: 27 Jul 2009 16:20
por sergiowdl
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

MensagemEnviado: 27 Jul 2009 17:57
por EDSONCAN
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

MensagemEnviado: 27 Jul 2009 18:38
por sergiowdl
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

MensagemEnviado: 27 Jul 2009 20:32
por fabim
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

MensagemEnviado: 27 Jul 2009 21:55
por sergiowdl
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...

MensagemEnviado: 28 Jul 2009 06:45
por KILB
Exite alguma ferramenta que integra um fluxograma ao codigo gerado ?



Usa o Flowcode !!!


Imagem


Também tem pro ARM





KILB

MensagemEnviado: 28 Jul 2009 07:32
por EDSONCAN
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

MensagemEnviado: 28 Jul 2009 10:37
por sergiowdl
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

MensagemEnviado: 28 Jul 2009 11:02
por KILB
Não por isso colega, quando tenho aresposta é uma prazer ajudar!!!

KILB 8)