Página 1 de 2

Paginação

MensagemEnviado: 17 Nov 2009 18:01
por Vonnilmam
Caros colegas, eu queria fazer um pergunta ingênua de quem esta começando a mexer com esses avrs...no caso sobre o ATMEGA16,

Então eu queria saber se eu preciso ficar selecionando paginas na memória de programa e na de dados (pergunto isso porque nos pics 16, temos que ficar fazendo essas coisas), estou programando em assembler no momento, afim de me familiarizar com o chip...

Grato,

MensagemEnviado: 17 Nov 2009 18:36
por Djalma Toledo Rodrigues
Tem não

Extraido do Datasheet:
Código: Selecionar todos
The first 96 locations address the Register File and I/O Memory, and the next
1024 locations address the internal data SRAM.

The direct addressing reaches the entire data space.

Quer dizer os primeros 96 Bytes contem: R0 a R31 e Portas

A partir do Endereço 0x60 livre


T ++ e bom ASM
.

duvida

MensagemEnviado: 17 Nov 2009 21:48
por Vonnilmam
Muito obrigado pela atenção!

- Para que serve o R0-R31? (por um acaso seriam registros de uso livre onde se poderia manipular bits e bytes?)

- Apartir do endereço 0x60 (dados da ram) eu posso manipular livremente os bits e bytes também?

Eu sempre lí sobre esses registros R0 a R31 mas confesso que numca entendi direito porque fala-se tanto nesses registros (isso imaginando que os endereços posteriores da ram fazem as mesmas coisas ou seja: pode-se escrever e ler bits e bytes também...

Grato,

MensagemEnviado: 17 Nov 2009 21:52
por Jozias del Rios
vc sofre do mal de pic!

seguinte... os r0 - r31 são os seus 32 acumuladores "W" equivalentes da PIC.

Dê especial atenção para os r16-r31, pois estes podem trabalhar com valores imediatos, os outros não.

especial atenção tambem para as duplas
z = r31:r30
y = r29:28
x = r27:r26

que são usados como ponteiros 16 bits para varias finalidades, entre elas ponteiro para a memoria (RAM ou Flash)

e dalhe estudo! aprender asm de avr é muito bom! esse bixinho é massa.

MensagemEnviado: 17 Nov 2009 23:17
por Djalma Toledo Rodrigues
Jozias del Rios escreveu: ... e dalhe estudo! aprender asm de avr é muito bom! esse bixinho é massa.

Vou 'adotar' um.

Um com 'pedigree' ATXMEGA128A1
.

MensagemEnviado: 18 Nov 2009 03:59
por Jozias del Rios
Se vc achar uma loja aqui no Brasil que vende esse bixinho tão fácil quanto um LED, me avisa.

Que pena que ele não fala USB

MensagemEnviado: 18 Nov 2009 14:53
por Vonnilmam
Realmente eu estou com pic na cuca em demasia...muito obrigado pelas dicas importantes...

Há eu trabalho com um distribuidor de componentes e eles encontram quase qualquer coisa (inclusive de amostras) fornecem em pequena quantidade (digam que são amigos do "marcos de minas gerais" e falem com marcelo farias, ok...www.tecnomult.com.br

Muito obrigado a todos, vou iniciar o aprendizado colocando a mão na massa...rsos...

MensagemEnviado: 18 Nov 2009 16:39
por Jozias del Rios
http://www.tecnomult.com.br/
:
Directory Listing Denied

??

MensagemEnviado: 25 Nov 2009 11:01
por Vonnilmam
Oi, tudo bem com vcs..

Então o telefone da tecnomult é: 011-4461-3099 falar com o marcelo farias...ok, o site esta correto: www.tecnomult.com.br...

O email do farias é: m.farias@tecnomult.com.br


Boa sorte a todos, e muito obrigado pelas dicas...em breve voltarei!

MensagemEnviado: 25 Nov 2009 12:05
por vtrx
Jozias,voce pode implementar USB em qualquer µc ou processador que não tenha,veja o exemplo do Mjoy,um ATmega8 usando USB...
Claro que fica limitado a velocidade,mas sem Hardware específico,vantagens do ASM...

MensagemEnviado: 25 Nov 2009 13:59
por Jozias del Rios
vtrx,

o problema é que eu estou querendo implementar um USB Full Speed Host (12Mbps), completamente diferente de um USB Low Speed Device como o Mjoy!

Quero conversar com um Pen Drive, como falei em outro tópico... tem que ter o modo Bulk Transfer, que não é implementado em Low Speed.

Tecnologicamente é impossível fazer isso com um ATMEGA sozinho por causa da Serial Engine Interface. Pensei até em usar o SPI e um FlipFlop externo como sugestão dada aqui no tópico, mas mesmo assim fica aquém do necessário em performance.

Até conversei com uns gringos por e-mail, e fiz eles corrigirem o site do projeto deles:
http://courses.cit.cornell.edu/eceprojectsland/STUDENTPROJ/2007to2008/blh36_cdl28_dct23/index.html (veja a primeira pergunta do FAQ)

eles afirmavam que flash drives eram dispositivos que eles conseguiam interfacear com o Atmega32, mas agora não mais.

Mesmo assim, eu, e os gringos também, estamos abertos a idéias criativas ;-)

MensagemEnviado: 25 Nov 2009 14:05
por Jozias del Rios
cara, esse http://www.tecnomult.com.br só dá "Directory Listing Denied" por aqui, pelo Chrome e Firefox. Alguém consegue abrir (excetuando-se o nego que sugeriu o site) ?

MensagemEnviado: 25 Nov 2009 15:34
por Djalma Toledo Rodrigues
Tem até uma Funerária Tecnomult -- Cruz credo! :lol:
.

MensagemEnviado: 25 Nov 2009 17:35
por vtrx
Jozias,vc programa em C ou ASM?

MensagemEnviado: 25 Nov 2009 17:54
por Jozias del Rios
Bom... programei muito ASM para a arquitetura x86, e cheguei até o SIMD com SSE/SSE2.
Em "alto nível" programo em C e C++, mas somente para computadores (Win32), não para microcontroladores.

Estou em vistas de, quando tiver paciencia e achar que compensa, criar uma linguagem " ASM++ " que tenha sintaxe parecida com o C++, porem que é traduzida diretamente para codigo binario. Algo como:

Código: Selecionar todos
r16++;
// torna-se: inc r16

if ( cf( r16 += 5) )
    r16 = 255;

// torna-se:
// sbi r16, -5
// brnc pc+2
//    ser r16



e tudo mais, e com a mesma orientação a objetos que o C++, porém com mais liberdade para realizar "inline" das funções e inclusive uso inteligente de registradores (variaveis abstratas)... enfim, uma linguagem com transição seamless entre C++ e ASM. Uma sintaxe que praticamente suporta arquivos .ASM e .CPP com o mesmo parser.

Logicamente criar uma ferramenta dessas para AVR não vale a pena. Eu estava imaginando fazer para o ARM-Cortex que eu espero que ainda vá dominar o mercado dos uC de 32 bits...

Bom, to deixando aqui a semente para que esse tópico se torne outro "C vs. ASM", igual deixei a semente no outro e rolou o que rolou hehehe.

e... pq a pergunta?