como usar as interrupções em C?

Software e Hardware para linha x51

Moderadores: 51, guest2003, Renie, gpenga

como usar as interrupções em C?

Mensagempor blackhawk123 » 15 Out 2006 17:09

Como faço para usar as interrupções do 8051(at89s52) em C?

PS: estou usando o sdcc para compilar.
blackhawk123
Bit
 
Mensagens: 27
Registrado em: 15 Out 2006 17:05

Mensagempor quique » 16 Out 2006 08:54

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
quique
Bit
 
Mensagens: 16
Registrado em: 16 Out 2006 08:47

Mensagempor brasilma » 16 Out 2006 09:29

É 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.
" A Teoria orienta e a Prática decide" ;-)
Avatar do usuário
brasilma
Dword
 
Mensagens: 3621
Registrado em: 11 Out 2006 15:39
Localização: Planeta Terra

Mensagempor blackhawk123 » 21 Out 2006 14:38

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 ...

}
blackhawk123
Bit
 
Mensagens: 27
Registrado em: 15 Out 2006 17:05

Mensagempor lmdmendes » 22 Out 2006 19:19

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
lmdmendes
Bit
 
Mensagens: 46
Registrado em: 13 Out 2006 13:29
Localização: Portugal

Mensagempor __JEREK__ » 22 Out 2006 21:25

esta ai, lmdmendes, o cara que pode responder as dúvidas com o SDCC!!! valeu!!!
__JEREK__
Byte
 
Mensagens: 216
Registrado em: 11 Out 2006 17:53
Localização: BA

Mensagempor quique » 23 Out 2006 22:23

Olá

respondendo ao blackhawk123,

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

Ok?!

Abraços
quique
Bit
 
Mensagens: 16
Registrado em: 16 Out 2006 08:47

Mensagempor blackhawk123 » 26 Out 2006 10:00

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.
blackhawk123
Bit
 
Mensagens: 27
Registrado em: 15 Out 2006 17:05


Voltar para 8051

Quem está online

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

x