Come configurare ATxMega128A1

Sezione dedicata al sistema di sviluppo BASCOM-AVR per i micro AVR
At90s, Attiny, Atmega e Xmega

Come configurare ATxMega128A1

Postby filosofo » 11 Jul 2012, 11:12

Scusate,
fino ad adesso ho realizzato qualche progettino con Atmega328, quello montato su arduino.
Vorrei passare alla famiglia XMega di Atmel, c'è qualcuno che potrebbe dirmi come configurare l'hardware, almeno le cose
fondamentali, tipo cristallo, baud, memoria ?
Purtroppo ho visto che è molto più sofisticato degli atmega normali e ci sono molti più registri da configurare. :shock:

Ho a disposizione il modello Xmega128a1 che mi sembra tra i più performanti.... giusto?

vi ringrazio
ciao
filosofo
 
Posts: 74
Joined: 23 Oct 2011, 09:52
Location: Dintorni di Roma

Re: Come configurare ATxMega128A1

Postby flz47655 » 11 Jul 2012, 11:29

Purtroppo ho usato solo AtMega, ti conviene partire dal datasheet e da qualche schema online secondo me..

Ciao
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: Come configurare ATxMega128A1

Postby deluca » 17 Jul 2012, 08:39

Se ti può essere di aiuto, (visto il ritardo nel risponderti) ecco un esempio su come configurare un ATxmega128a1.
Il codice configura l'adc, acquisisce e spedisce i dati sulla seriale.

Code: Select all
$regfile = "xm128a1def.dat"
$crystal = 32000000
$hwstack = 64
$swstack = 64
$framesize = 64

'abilita l'oscillatore
Config Osc = Enabled , 32mhzosc = Enabled

'configura il systemclock
Config Sysclock = 32mhz , Prescalea = 1 , Prescalebc = 1_1

Config Com1 = 19200 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8

Print "ADC test"

'configura l' ADC-A
Config Adca = Single , Convmode = Unsigned , Resolution = 12bit , Dma = Off , Reference = Int1v , Event_mode = None , Prescaler = 32 , Ch0_gain = 1 , Ch0_inp = Single_ended , Mux0 = &B000_00 , _
Ch1_gain = 1 , Ch1_inp = Single_ended , Mux1 = &B1_000 , Ch2_gain = 1 , Ch2_inp = Single_ended , Mux2 = &B10_000 , Ch3_gain = 1 , Ch3_inp = Single_ended , Mux3 = &B11_000

Dim W As Word , I As Byte , Mux As Byte
Do
  Mux = I * 8                                             
  W = Getadc(adca , 0 , Mux)                               
  Print "RES:" ; I ; "-" ; W
  Incr I
  If I > 3 Then I = 0
  Waitms 500
Loop Until Inkey(#1) = 27

End                                                         'end program



PS. Il codice non usa il DMA, dai un'occhiata al DMA e vedrai i vantaggi che esso può dare.
Ciao
Il mio sito: http://www.delucagiovanni.com ......e la chat: chat/
User avatar
deluca
Site Admin
 
Posts: 1104
Joined: 19 Jun 2011, 10:44
Location: 95123 - Catania (Italy)


Return to BASCOM-AVR

Who is online

Users browsing this forum: Bing [Bot] and 28 guests