K
kbbhushan
Guest
Γεια σου,
Κάνω ένα έργο χρησιμοποιώντας ade7753 και atmega32.
Δεν είμαι σε θέση να καθορίζει την επικοινωνία μεταξύ των δύο.
Μπορεί κάποιος παρακαλώ να με βοηθήσει.
Αυτό είναι SPI κώδικα.
int main (κενή)
(
/ / Initialize βιβλιοθήκες μας
/ / Initialize το UART (σειριακής θύρας)
uartInit ()?
/ / Που την ταχύτητα baud της UART για μας debug / αναφοράς εξόδου
uartSetBaudRate (9600)?
/ / Initialize το χρονοδιακόπτη σύστημα
timerInit ()?
/ / Initialize rprintf σύστημα
/ / - UartSendByte χρήση ως παραγωγή για όλες τις καταστάσεις rprintf
/ / Αυτό θα προκαλέσει όλες τις λειτουργίες της βιβλιοθήκης rprintf να κατευθύνουν τις
/ / Εξόδου για το UART
/ / - Rprintf μπορεί να γίνει για την έξοδο σε κάθε συσκευή που λαμβάνει χαρακτήρες.
/ / Θα πρέπει να γράψετε μια λειτουργία η οποία λαμβάνει ένα unsigned char ως επιχείρημα
/ / Και στη συνέχεια να περάσει αυτό το rprintfInit κάπως έτσι: rprintfInit (YOUR_FUNCTION)?
rprintfInit (uartSendByte)?
/ / Initialize vt100 βιβλιοθήκη
vt100Init ()?
/ / Σαφές το τερματικό οθόνη
vt100ClearScreen ()?
SBI (DDRD, 1)?
CBI (DDRD, 0)?
char αποτέλεσμα?
spi_init ()?
ade7753_write_to_reg (0x13, 0x02)?
αποτέλεσμα = ade7753_read_from_reg (0x13)?
rprintf ( "Αποτέλεσμα είναι% d \ r \ n", (uint8_t) αποτέλεσμα)?/ / Spi_tx ()?
/ / Spi_rx ()?/ /)
)
άκυρη ade7753_write_to_reg (char addr, char αξία) (
rprintf ( "Στην ade7753_write_to_reg \ r \ n")?
spi_start ()?
/ / εγγραφής διεύθυνση επικοινωνίας για να εγγραφείτε πρώτα
addr = (addr 0 x80)?
rprintf ( "Αυτή η διεύθυνση γράφεται% d \ r \ n", addr)?
spi_tx (addr)? / / διεύθυνση του reigster να γράψετε
_delay_us (0.05)?
spi_tx (τιμή)? / / αξία που πρέπει να εγγραφούν στο μητρώο
spi_end ()?
)
unsigned char ade7753_read_from_reg (char addr)
(
unsigned char regval?
rprintf ( "Στην ade7753_read_from_reg \ r \ n")?
spi_start ()?
/ / γράψετε τη διεύθυνση του μητρώου για την ανάγνωση της Επιτροπής εγγραφείτε πρώτα
addr = (addr 0 x80)?
rprintf ( "Αυτή είναι η ανάγνωση του μητρώου διεύθυνση% d", addr)?
_delay_us (4)? / / T9 = 4uswait μέχρι να τελειώσει η διεύθυνση είναι φορτωμένο
regval = spi_rx ()?
επιστροφή regval?
)
άκυρη spi_init (κενή)
(
/ * MOSI που αναφέρονται? SCK out? SS out? * /
DDR_SPI = DDR_SPI | (1 <<MOSI) | (1 <<SCK) | (1 <<SS)?
/ * Ορισμός ΜΙΣΟ σε * /
DDR_SPI = DDR_SPI & ~ (1 <<ΜΙΣΟ)?
/ * Ενεργοποίηση SPI? Που Master mode? SPI Mode = 3? Στ '= f/128 * /
SPCR = (1 <<SPE) | (0 <<DORD) | (1 <<MSTR) | (0 <<CPOL) | (1 <<CPHA) | (0 <<SPR1) | (1 <<SPR0) ?
επιστροφή?
)
άκυρη spi_tx (unsigned char data)
(
/ * Έναρξη μετάδοσης * /
SPDR = δεδομένα?
rprintf ( "Αυτό είναι το spi_tx δεδομένα είναι% d",
τα δεδομένα)?
/ * Περιμένετε για πλήρη μετάδοση * /
while (! (SPSR & (1 <<SPIF)))?
επιστροφή?
)
unsigned char spi_rx (κενή)
(
/ * Αποστολή εικονική χαρακτήρα * /
SPDR ΑΝΔΡΕΙΚΕΛΟΥ =?
/ * Περιμένετε για λήψη πλήρους * /
while (! (SPSR & (1 <<SPIF)))?
/ * Επιστροφή μητρώο δεδομένων * /
rprintf ( "Αυτό είναι το spi_tx δεδομένα είναι% d", SPDR)?
επιστροφή SPDR?
)
άκυρη spi_start (κενή)
(
/ * Τέλος, αν υπάρχουν, προηγούμενες συνόδου * /
spi_end ()?
/ * Ρυθμίστε χαμηλά SS - έναρξη μιας νέας συνόδου * /
PORT_SPI = PORT_SPI & ~ (1 <<SS)?
επιστροφή?
)
άκυρη spi_end (κενή)
(
/ * Set SS υψηλής * /
PORT_SPI = PORT_SPI | (1 <<SS)?
επιστροφή?
)
Κάνω ένα έργο χρησιμοποιώντας ade7753 και atmega32.
Δεν είμαι σε θέση να καθορίζει την επικοινωνία μεταξύ των δύο.
Μπορεί κάποιος παρακαλώ να με βοηθήσει.
Αυτό είναι SPI κώδικα.
int main (κενή)
(
/ / Initialize βιβλιοθήκες μας
/ / Initialize το UART (σειριακής θύρας)
uartInit ()?
/ / Που την ταχύτητα baud της UART για μας debug / αναφοράς εξόδου
uartSetBaudRate (9600)?
/ / Initialize το χρονοδιακόπτη σύστημα
timerInit ()?
/ / Initialize rprintf σύστημα
/ / - UartSendByte χρήση ως παραγωγή για όλες τις καταστάσεις rprintf
/ / Αυτό θα προκαλέσει όλες τις λειτουργίες της βιβλιοθήκης rprintf να κατευθύνουν τις
/ / Εξόδου για το UART
/ / - Rprintf μπορεί να γίνει για την έξοδο σε κάθε συσκευή που λαμβάνει χαρακτήρες.
/ / Θα πρέπει να γράψετε μια λειτουργία η οποία λαμβάνει ένα unsigned char ως επιχείρημα
/ / Και στη συνέχεια να περάσει αυτό το rprintfInit κάπως έτσι: rprintfInit (YOUR_FUNCTION)?
rprintfInit (uartSendByte)?
/ / Initialize vt100 βιβλιοθήκη
vt100Init ()?
/ / Σαφές το τερματικό οθόνη
vt100ClearScreen ()?
SBI (DDRD, 1)?
CBI (DDRD, 0)?
char αποτέλεσμα?
spi_init ()?
ade7753_write_to_reg (0x13, 0x02)?
αποτέλεσμα = ade7753_read_from_reg (0x13)?
rprintf ( "Αποτέλεσμα είναι% d \ r \ n", (uint8_t) αποτέλεσμα)?/ / Spi_tx ()?
/ / Spi_rx ()?/ /)
)
άκυρη ade7753_write_to_reg (char addr, char αξία) (
rprintf ( "Στην ade7753_write_to_reg \ r \ n")?
spi_start ()?
/ / εγγραφής διεύθυνση επικοινωνίας για να εγγραφείτε πρώτα
addr = (addr 0 x80)?
rprintf ( "Αυτή η διεύθυνση γράφεται% d \ r \ n", addr)?
spi_tx (addr)? / / διεύθυνση του reigster να γράψετε
_delay_us (0.05)?
spi_tx (τιμή)? / / αξία που πρέπει να εγγραφούν στο μητρώο
spi_end ()?
)
unsigned char ade7753_read_from_reg (char addr)
(
unsigned char regval?
rprintf ( "Στην ade7753_read_from_reg \ r \ n")?
spi_start ()?
/ / γράψετε τη διεύθυνση του μητρώου για την ανάγνωση της Επιτροπής εγγραφείτε πρώτα
addr = (addr 0 x80)?
rprintf ( "Αυτή είναι η ανάγνωση του μητρώου διεύθυνση% d", addr)?
_delay_us (4)? / / T9 = 4uswait μέχρι να τελειώσει η διεύθυνση είναι φορτωμένο
regval = spi_rx ()?
επιστροφή regval?
)
άκυρη spi_init (κενή)
(
/ * MOSI που αναφέρονται? SCK out? SS out? * /
DDR_SPI = DDR_SPI | (1 <<MOSI) | (1 <<SCK) | (1 <<SS)?
/ * Ορισμός ΜΙΣΟ σε * /
DDR_SPI = DDR_SPI & ~ (1 <<ΜΙΣΟ)?
/ * Ενεργοποίηση SPI? Που Master mode? SPI Mode = 3? Στ '= f/128 * /
SPCR = (1 <<SPE) | (0 <<DORD) | (1 <<MSTR) | (0 <<CPOL) | (1 <<CPHA) | (0 <<SPR1) | (1 <<SPR0) ?
επιστροφή?
)
άκυρη spi_tx (unsigned char data)
(
/ * Έναρξη μετάδοσης * /
SPDR = δεδομένα?
rprintf ( "Αυτό είναι το spi_tx δεδομένα είναι% d",
τα δεδομένα)?
/ * Περιμένετε για πλήρη μετάδοση * /
while (! (SPSR & (1 <<SPIF)))?
επιστροφή?
)
unsigned char spi_rx (κενή)
(
/ * Αποστολή εικονική χαρακτήρα * /
SPDR ΑΝΔΡΕΙΚΕΛΟΥ =?
/ * Περιμένετε για λήψη πλήρους * /
while (! (SPSR & (1 <<SPIF)))?
/ * Επιστροφή μητρώο δεδομένων * /
rprintf ( "Αυτό είναι το spi_tx δεδομένα είναι% d", SPDR)?
επιστροφή SPDR?
)
άκυρη spi_start (κενή)
(
/ * Τέλος, αν υπάρχουν, προηγούμενες συνόδου * /
spi_end ()?
/ * Ρυθμίστε χαμηλά SS - έναρξη μιας νέας συνόδου * /
PORT_SPI = PORT_SPI & ~ (1 <<SS)?
επιστροφή?
)
άκυρη spi_end (κενή)
(
/ * Set SS υψηλής * /
PORT_SPI = PORT_SPI | (1 <<SS)?
επιστροφή?
)