UOL

UOL

quinta-feira, 29 de janeiro de 2009

Apostila Microcontroladores



Boa apostila sobre microntroladores PIC com alguns projetos práticos para serem implementados.


terça-feira, 27 de janeiro de 2009

Introdução a funções


AULA 4 - Funções, breve introdução

Uma função é um bloco de código de programa que pode ser usado diversas vezes em sua execução. O uso de funções permite que o programa fique mais legível, mais bem estruturado. Um programa em C consiste, no fundo, de várias funções colocadas juntas.
Abaixo o tipo mais simples de função:

#include

mensagem ()

{
printf ("Ola! ");
}
main ()
{
mensagem();
printf ("Eu estou vivo!\n");
}

Este programa terá o mesmo resultado que o primeiro exemplo da seção anterior. O que ele faz é
definir uma função mensagem() que coloca uma string na tela. Depois esta função é chamada a partir de main() (que também é uma função).

Argumentos


Argumentos são as entradas que a função recebe. É através dos argumentos que passamos parâmetros para a função. Já vimos funções com argumentos. As funções printf() e scanf() são funções que têm argumentos. Vamos ver um outro exemplo simples de função com argumentos:

#include
square (int x)
{
printf ("O quadrado e %d",(x*x));
}
main ()
{
int num;
printf ("Entre com um numero: ");
scanf ("%d",&num);
printf ("\n\n");
square(num);
}

Na definição de square() dizemos que a função receberá um argumento inteiro x. Quando fazemos
a chamada à função, o inteiro num é passado como argumento. Há alguns pontos a observar. Em primeiro lugar temos de satisfazer aos requesitos da função quanto ao tipo e à quantidade de argumentos quando a chamamos. Apesar de existirem algumas conversões de tipo, que o C faz automaticamente, é importante ficar atento. Em segundo lugar, não é importante o nome da variável que se passa como argumento, ou seja, a variável num, ao ser passada como argumento para square() é copiada para a variável x. Dentro de square() trabalha-se apenas com x. Se mudarmos o valor de x dentro de square() o valor de num na função main() permanece inalterado. Vamos dar um exemplo de função de mais de uma variável. Repare que, neste caso, os argumentos são separados por vírgula e que deve-se explicitar o tipo de cada um dos argumentos, um a um. Note também que os argumentos passados para a função não necessitam ser todos variáveis porque mesmo sendo constantes serão copiados para a variável de entrada da função.

#include
mult (float a,float b,float c)
{
printf ("%f",a*b*c);
}
main ()
{
float x,y;
x=23.5;
y=12.9;
mult (x,y,3.87);
}

Retornando valores


Muitas vezes é necessário fazer com que uma função retorne um valor. As funções que vimos até aqui retornam um valor inteiro, pois, na linguagem C, a não ser que seja especificado, as funções retornam um inteiro. Mas para dizer ao C o que vamos retornar precisamos da palavra reservada return. Sabendo disto fica fácil fazer uma função para multiplicar dois inteiros. Veja:

#include
prod (int x,int y)
{
return (x*y);
}
main ()
{
int saida;
saida=prod (12,7);
printf ("A saida e: %d\n",saida);
}

Veremos mais adiante como proceder a fim de que uma função retorne outros valores que não
sejam inteiros. Note que se você estava recebendo mensagens de "warning" no seu compilador para as funções anteriores, você não recebeu para a função prod() do programa anterior! Isto é porque a função prod() faz o que o compilador estava esperando: retorna um valor.
O exemplo abaixo ilustra o retorno de um valor float.

#include

float prod (float x,float y)
{
return (x*y);
}
main ()
{
float saida;
saida=prod (45.2,0.0067);
printf ("A saida e: %f\n",saida);
}

O modelo geral de implementação de uma função está descrito abaixo.

tipo_de_retorno nome_da_função (argumentos)
{
código_da_função
}

Thiago F.

Extraído e adaptado da apostila:

Apostila do Curso de Linguagem C / UFMG

Curso dirigido pelo:
Pr. Renato Cardoso Mesquita
Outubro de 1998

Pág 8 - 10

Apostila Programação em linguagem C


Linguagem C


Apostila do Curso de Linguagem C / UFMG.

A apostila aborda desde a introdução a linguagem C, comandos importantes até aspectos mais avançados como vetores, ponteiros, funções, alocação de memória, etc.

112 Páginas


Apostila Programação em linguagem C




Linguagem C


Apostila de programação em linguagem C do curso de Superior de Tecnologia em Automação Industrial da Universidade Estadual do Rio Grande do Sul.

Ótima apostila para quem quer aprender a programar na Linguagem C, bastante didática, com vários exemplos e códigos comentados.

75 Páginas





domingo, 25 de janeiro de 2009

Variáveis


AULA 3 - Variáveis

Na programação, uma variável é um objeto (uma posição, freqüentemente localizada na memória) capaz de reter e representar um valor ou expressão. Enquanto as variáveis só "existem" em tempo de execução, elas são associadas a "nomes", chamados identificadores, durante o tempo de desenvolvimento.

Extraído de: Wikipedia

Um aspecto relevante sobre nomeclatura de variáveis é que estas só devem começar com uma letra ou sublinhado (_) enquanto que os outros caracteres podem ser letras, números ou sublinhado (_).

O C tem 5 tipos de dados básicos: char, int, float, void, double.

  • char: utilizado para representação de caracteres ASCII de 8 bits;
  • int: representa números inteiros de 8 bits;
  • float: chamado de ponto flutuante, é utilizado para representar grandezas ineiras ou fracionárias comprendidas entre 3,4^-38 até 3,4^38;
  • void: utilizado em funções que não retornam nada e também para funções que não têm parâmetros;
  • double: é o ponto flutuante duplo e pode ser visto como um ponto flutuante com muito mais precisão.
Além dos tipos de dados temos também os modificadores de tipo: signed, unsigned, short, e long.
  • signed: modifica um tipo de dado para que o mesmo possa representar números positivos e negativos;
  • unsigned: modifica um tipo de dado para que o mesmo não tenha sinal;
  • short: modifica um tipo de dado para que o mesmo tenha um tamanho menor;
  • long: amplia o tamanho de um tipo de dado;
Observação: Ao float não se pode aplicar nenhum modificador de tipo e ao double pode-se aplicar apenas o long.

Declaração de variáveis

Para utilizar as variáveis no C é necessário que estas sejam declaradas previamente. As variáveis podem ser de dois tipos: locais ou globais. As variáveis globais são declaradas fora de todas as funções do programa e são válidas (podem ser usardas), em todo o programa. Já as variáveis locais só são válidas dentro das funções a qual ela pertence.
Vejamos como declarar uam variável.

Modo geral de declaração: tipodavariável variável ;

Exemplo (variável local):

00
01 #include
02
03 void main()
04 {
05 int j ;

06 j = 0 ;
07 j = j + 10 ;
08 printf("valor de j = %d",j) ;
09 }
10

Neste exemplo a função main, ou função principal, foi declarada como void (void = vazio), ou seja, não retorna nada. Em seguida declaramos a variável "j" e inicializamos esta com um valor, neste caso com zero, is
to é necessário para eliminar o lixo de memória existente na variável. Na linha 07, adicionamos 10 unidades ao valor da variável "j" (zero) tendo assim ao final da operação 10 unidades armazenada nesta variável.
O efeito deste programa é, portanto, adicionar 10 unidades na variável "j" e imprimir na tela o seu valor através do comando printf.
Podemos observar que, "j" é uma variável local, só é válida dentro do bloco da função main.


Exemplo (variável global):

00 #include
01
02 int j ;
03

04 void main()
05 {
06 j = 0 ;

07 j = j + 10 ;
08 printf("valor de j = %d",j) ;
09 }
10

Este exemplo tem a mesmo efeito do exemplo anterior, porém, diferencia-se pois, a variável "j" neste caso é global.

A tabela abaixo ilustra todos os tipos de dados disp
oníveis em compiladores típicos.


Thiago F.


Referências:

Linguagem C
Autor: Naiara Kalline da Silva Ferreira

Microcontroladores PIC Programação em C
Fábio Pereira
Editora Érica




Palavras reservadas da linguagem C


AULA 2 - Palavras reservadas do C

Como toda linguagem de programação, o C, também possui um conjunto de palavras reservadas estipulada pelo padrão ANSI. Essas palavras só podem ser utilizadas para um determinado propósito definido pela linguagem.

Vejamos quais são essas palavras reservadas.

A função de cada uma destas palavras reservadas, serão enunciadas no momento mais oportuno deste curso de programação.

Thiago F.

sábado, 24 de janeiro de 2009

Download de compiladores!



Excelente compilador de C++ da Inprise (antiga Borland) que agora é gratuito. Considerado por muitos o melhor compilador C++ existente no mercado.

Para poder fazer o download da versão Free, você deve se cadastrar como membro da Borland Community, responder algumas perguntas e fazer o download. É um pouquinho demorado mais vale a pena!

Roda em Windows 95, 98, NT, 2000, Millenium, XP

Extraído de: Superdownloads


Download de compiladores!




O Bloodshed Dev-C++ é um ambiente integrado de desenvolvimento para aplicações em C e C++. Pode ser utilizado em combinação com o Cygwin ou qualquer outro software baseado em em GCC (GNU Compiler Collection).



Download de compiladores!



Turbo C++ é um compilador C++ e ambiente de desenvolvimento integrado produzido pela Borland, parte de uma popular família de compiladores que também inclui Turbo Pascal, Turbo Basic, Turbo Prolog e Turbo C. Sendo o sucessor do Turbo C, o Turbo C++ expandiu o compilador similarmente a como o Turbo Pascal 5.5 adicionou a funcionalidade de orientação a objeto em relação a versões anteriores. Entretanto, o produto nunca foi capaz de atender toda a norma da linguagem, a ISO/IEC 14882, pois o compilador foi descontinuado antes de ser completado.Recentemente, a Borland relançou a linha de produtos Turbo que conta com uma nova versão do Turbo C++.


Compiladores, antes de programar!


Escolha de um compilador.


Antes de iniciarmos as aulas de programção em C é necessário saber todas ou pelo menos as etapas necessárias para aprender a programar e as ferramentas necessárias para que isso seja possível.

Para começar a programar de fato é necessário de um compilador.

Um compilador é um programa (ou um grupo de programas) que, a partir de um código escrito em uma linguagem, o código fonte, cria um programa semanticamente equivalente porém escrito em outra linguagem, código objeto.

Um compilador é um dos dois tipos mais gerais de tradutores, sendo que o segundo tipo que a ele deve ser comparado é um interpretador.

Normalmente, o código fonte é escrito em uma linguagem de programação de alto nível, com grande capacidade de abstração, e o código objeto é escrito em uma linguagem de baixo nível, como uma sequência de instruções a ser executada pelo processador.


Extraído de: wikipedia

Na internet é possível encontrar uma gama de compiladores, cabe a você com a experiência escolher o que se adeque melhor às suas necessidades. Por enquanto, eu recomendo dois, ou melhor três, Turbo C, Dev C++ e finalmente o CCS. Você pode encontrar diveros compiladores na internet, dos que eu citei o Turbo C é pago, o Dev c++ é Opensource e o CCS tem uma versão demo.

Qual a diferença básica entre os três?

O que diferencia os três é que o dois primeiros (Turbo C e Dev C++) são voltados para a programação em C, mas, não fornece subsídios para a programação em C voltada para microcontroladores PIC. Também, esses dois compiladores seguem o padrão ANSI enquanto que o CCS não segue, não que seja ruim para um compilador não seguir o padrão ANSI.

Portanto, inicialmente você pode utilizar os compiladores Turbo C e Dev C++ até o momento em que se sinta mais seguro para começar a aprender a linguagem C voltada para microcontroladores, se bem que a diferença não é tão grande.

Thiago F.

Estrutura básica de um programa em C


AULA 1 - Estrutura básica de um programa em C


Iniciaremos o ensino da linguagem de programação C com um exemplo simples por meio do qual será possível explicar o que um programa em C deve ou não ter.
Observe que as linha estão numeradas: 00, 01, 02 etc. Esses números não fazem parte do progama, mas, estão aí apenas para que seja possível referenciar algo que necessite de comentários na nossa aula.

00
01 #include
02
03 /* Um Primeiro Programa */
04
05 int main ()
06 {
08 printf ("Primeiro Programa!\n");
09 return(0);
10 }
11

Vejamos então o que cada linha significa.

Linha 01: #include
Esta linha informa ao conpilador para incluir o arquivo stdio.h, chamado de arquivo-cabeçalho. Cada arquivo-cabeçalho contém variáveis, tipos, símbolos e funções que podem ser utilizadas pelo programador para realizar uma ação, no caso do stdio.h ele contém funções de entrada e saída pradronizadas de dados, daí seu nome stdio = standard input output. Funções como "printf" (imprime dados na tela), "scanf" (recebe dados através do teclado) estão no arquivo "stdio.h".

Linha 03: /* Um Primeiro Programa */

Essa linha mostra como você pode comentar o seu programa a fim de torná-lo mais fácil de entender. Você pode utilizar tanto /*comentários*/, como também duas barras: //comentários.
A diferença básica entre os dois, é que, ao usar /*comentários*/ você pode escrever ilimitadamente dentro das barras com asterisco enquanto que ao usar as duas barras consecutivas, //comentários, os comentários se restringem à linha onde estão as barras, ou seja, caso queira escrever na linha seguinte deve-se incluir novamente as barras consecutivas na linha seguinte.

Exemplo:

/* Este é um exemplo de comentário utilizando este modelo de comentários. Tudo que está entre as barras e os asteriscos é ignorado pelo compilador . */

Exemplo:

// Este é um exemplo de comentário utilizando este modelo de comentários.
// Tudo que está entre depois das barras é ignorado pelo compilador.
// Comente quantas linhas quiser, lembrando apenas de colocar as barras.

Linha 05: int main ()

Informa ao compilador a chamada de uma função, neste caso da função main, do inglês main = principal. Todo programa em C deve conter a função principal main que é delimitada pelas chaves {}, ou seja, inicia-se com a chave "{" e finaliza com a chave "}". Tudo que estuver entre as chaves são instruções que serão executadas sequencialmente após a chamada da função.
Apalava int indica que o retorno da função é um número inteiro, mas, pode-se ter outros tipos de retorno de uma função, por exemplo, char, void, float etc.

Linha 08: printf ("Primeiro Programa!\n");

Imprime na tela a string (cadeia de caracteres) que está entre as aspas: "Primeiro Programa\n". O "\n" não é impresso pois é um código de barra invertida que tem como função fazer o cursor pular uma linha.

Linha 09: return(0);

Indica o número inteiro que será retornado pela função, neste caso, zero.

Thiago F.


Breve introdução à programação de PICs



Programação de PICs em C


A utilização de C para a programação de microcontroladores com PICs parece uma escolha natural e realmente é.

Atualmente, a maioria dos microcontroladores disponíveis no mercado contam com compiladores de linguagem C para o desenvolvimento de software.

O uso de C permite a construção de programas e aplicações muito mais complexas do que seria viável utilizando apenas o Assembly.

Além disso, o desenvolvimento em C permite uma grande velocidade na criação de novos projetos, devido às facilidades de programação oferecidas pela linguagem e também à sua portabilidade, o que permite adaptar programas de um sistema para outro com o mínimo de esforço.

Outro aspecto favorável da utilização de C é a sua eficiência.

Eficiência no jargão dos compiladores é a medida do grau de inteligência com que o compilador traduz um programa em C para o código de máquina. Quanto menor e mais rápido o código gerado, maior será a eficiência da linguagem e do compilador.

Conforme já dissemos, C, devido a sua proximidade com o hardware e o Assembly, é uma linguagem extremamente eficiente. De fato, C é considerada como a linguagem de alto nível mais eficiente atualmente disponível.

Repare que o aspecto eficiência é realmente muito importante quando tratamos de microcontroladores cujos recursos são tão limitados como nos PICs, afinal, quando dispomos de apenas 512 palavras de memória de programa e 25 bytes de RAM (como no PIC12C508 E 16C54), é imprescindível que se economize memória.

Além disso, a utilização de uma linguagem de alto nível como C permite que o programador preocupe-se mais com a programação de aplicação em si, já que o compilador assume para si tarefas como o controle e localização das variáveis, operações matemáticas e lógicas, verificação de bancos de memória, etc.

Extraído do livro:
Microcontroladores PIC Programação em C
Fábio Pereira
Baseado nos compiladores CCS
Pág 18
Editora Érica


Como pode ser observado na leitura do texto acima, a linguagem C é um diferencial no desenvolvimento de projetos com microcontroladores, portanto, daremos ênfase então primeiramente ao apredizado dessa linguagem antes de partimos para o desenvolvimento de teoria e projetos com microcontroladores PIC.

Thiago F.