Página 1 de 1

como usar as interrupções em C?

MensagemEnviado: 15 Out 2006 17:09
por blackhawk123
Como faço para usar as interrupções do 8051(at89s52) em C?

PS: estou usando o sdcc para compilar.

MensagemEnviado: 16 Out 2006 08:54
por quique
Olá!

Acho que você pode tentar usar a palavra interrupt .

Por exemplo

void IRQ_Serial(void) interrupt 4
{

... Tratamento da serial ...

}

O número indica qual é a interrupção, que segue da seguinte forma :

0 - Interrupção Externa 0
1 - Interrupção Timer 0
2 - Interrupção Externa 1
3 - Interrupção Timer 1
4 - Interrupção Serial
5 - Interrupção Timer 2

Espero que isto te ajude .

Abraços

Quique

MensagemEnviado: 16 Out 2006 09:29
por brasilma
É isso mesmo

void Timer0_Int(void) interrupt 1 // Interrupcao do Timer 0
{
rotina que trata a inetrrupção
}

Uma diferença em relação ao assembler, é que não precisa colocar o RETI no final.

Abraços,
MArcos.

MensagemEnviado: 21 Out 2006 14:38
por blackhawk123
obrigado pela ajuda.

Mas eu fiquei só com uma dúvida:


O nome da função pode ser qualquer um? por exemplo:

void Interrupt_timer_1(void) interrupt 3
{

... Tratamento do timer 1 ...

}

MensagemEnviado: 22 Out 2006 19:19
por lmdmendes
blackhawk123

Estas a usar o SDCC para compilar? Em que sistema operativo? Linux ou windows? Se em Windows, podes explicar como consegues compilar? Usas o GPUTILS-Win32? Eu estou a quer usar o SDCC em PICs, mas não esta a ser fácil, eu quero usar no MPLAB, com o GPUTILS, mas não estou a conseguir, podes dar uma olhadela no que fiz, no forum PIC -> SDCC no MPLAB.

Se poderes dar alguma ajuda agradecia, nem que seja só explicar como usar em 8051, explicar como estas a usar, ok? Agradecia.

Um Abraço

Mendes

MensagemEnviado: 22 Out 2006 21:25
por __JEREK__
esta ai, lmdmendes, o cara que pode responder as dúvidas com o SDCC!!! valeu!!!

MensagemEnviado: 23 Out 2006 22:23
por quique
Olá

respondendo ao blackhawk123,

Sim o nome da função pode ser qualquer um, apenas respeitando a palavra chave interrupt

Ok?!

Abraços

MensagemEnviado: 26 Out 2006 10:00
por blackhawk123
lmdmendes escreveu:blackhawk123

Estas a usar o SDCC para compilar? Em que sistema operativo? Linux ou windows? Se em Windows, podes explicar como consegues compilar? Usas o GPUTILS-Win32? Eu estou a quer usar o SDCC em PICs, mas não esta a ser fácil, eu quero usar no MPLAB, com o GPUTILS, mas não estou a conseguir, podes dar uma olhadela no que fiz, no forum PIC -> SDCC no MPLAB.

Se poderes dar alguma ajuda agradecia, nem que seja só explicar como usar em 8051, explicar como estas a usar, ok? Agradecia.

Um Abraço

Mendes


Sim eu uso o SDCC no windows, mas só sei o básico do SDCC. Eu só o instalei e ativei o path para que ele funcionasse em qualquer pasta. Então quando quero compilar programas para 8051 escritos em C eu uso a seguinte linha de comando:

sdcc nomedoprograma.c

e o SDCC gera o o código assembly(nomedoprograma.asm) e o arquivo hexa (nomedoprograma.ihx), na verdade não tenho certeza se é .ihx, mas se não for isso é algo parecido.
Caso o path não esteja ativado é so vc copiar o seu programa.c para a pasta onde está o arquivo sdcc.exe. Não lembro onde eu baixei ele mas da uma busca no google que vc acha.

Espero ter ajudado, mas se vc ainda tive dúvida pode perguntar que eu tentarei ajudar.

O MPLAB eu não o conheço.