Im Forum und im Wiki
-
Thread
AVR USART synchron
freq_zaehler_a = 0; static __uint24 freq_zaehler_b = 0; static unsigned int form_puffer_a = MCP4921_KANA | MCP4921_GA | MCP4921_SHDN | 0x0400; static unsigned int form_puffer_b = MCP4921_KANB | MCP4921_GA | MCP4921_SHDN | 0x0400; FLAGG &= ~(1<<F_PULS); /*** Kanal A ***/ /
noch optimieren? Interrupt: [c]ISR(TIMER0_COMPA_vect, ISR_NAKED){ // Timer 0 interrupt. MCP4921_LDAC_PORT &= ~(1<<MCP4921_LDAC); // Impuls LDAC FLAGG |= (1<<F_PULS); // Flag fuer Puls einsetzen MCP4921_LDAC_PORT |= (1<<MCP4921_LDAC); reti(); // da ISR_NAKED } [/c] So ist schneller
-
Thread
MCP4921 Problem
Hi Marco. Wo ist denn der Code für die Funktion MCP4921_setdata? Ohne den kann man nicht wirklich sagen, was falsch läuft. Aber ich wage man einen Schuss ins Blaue: Du hast Parameter von MCP4921_setdata vertauscht.
ich ca. 2.5V als Ausgabe. Das stimmt also soweit. Trotzdem hier noch einmal der Code: [c] void MCP4921_setdata(int byte1, int byte2) { SS_low(); SPI_MasterTransit(byte1); SPI_MasterTransit(byte2); _delay_us(1); SS_high(); //MCP4921_latchdata(); } [/c]
-
Thread
SD_Karte Directory erstellen
| 0b00110000; if (counter == 4090) { counter = 256; } MCP4921_setdata(test, counter); //MCP4921_latchdata(); _delay_ms(50); //PORTC ^=(1<<PC0); if (next == 1) { ADC_value = calculate_adc(adc_result);
| 0b00110000; if (counter == 4090) { counter = 256; } MCP4921_setdata(test, counter); //MCP4921_latchdata(); _delay_ms(50); //PORTC ^=(1<<PC0); if (next == 1) { ADC_value = calculate_adc(adc_result);
-
Thread
16 Bit SPI senden
Funktion wird in einer Endlosschleife 65535 versendet) main: [c] #include <avr/io.h> #include "mcp_4921.h" int main(void) { mcp_init(); while(1) { mcp_setValue(65535); } return 0; } [/c] mcp_4921.h: [c] #ifndef MODUL_MCP_4921_H #define MODUL_MCP_4921_H #include
value); void mcp_init(void); volatile int8_t spi_status; uint8_t lower_byte; #endif [/c] mcp4921.c in Software (funktioniert): [c] #include "mcp_4921.h" #include <avr/io.h> void mcp_init(void) { DDR_SPI |= (1<<CS)|(1<<SCK)|(1<<SDI)|(1<<LDAC); // Setzte Busausgänge PORT_SPI |
-
Thread
Atmega 32U bei Arduino Micro SPI Problem
Oder besteht das Problem woanders? Hier bisher mein code: #include <SPI.h> #include <AH_MCP4921.h> // Bibliothek für 12Bit DAC MCP4921 AH_MCP4921 AnalogOutput1(15,16,17); // MOSI,SCK, SS void setup() { AnalogOutput1.setValue(4096); //5V ausgeben } void loop(){ }
Wo ist denn da Pin 15, 16, 17? AH_MCP4921 AnalogOutput1(10,9,8); // MOSI,SCK,SS oder besser (SPI Mode) AH_MCP4921 AnalogOutput1(8); // MOSI,SCK,SS Grüße, afrob
-
Thread
MCP4921 Konfiguration
MCP4921 habe ich keinen Shuwtdown Pin, ist es demnach egal wie ich dieses Bit konfiguriere? Ist dieser SHDN Pin bei einer konfigurierten "1" aktiviert und bei einer "0" deaktiviert? Bit 14 kann ich mir nicht
gemeint. Dessen Treiber könnte man > abschalten Okay, das erklärt jetzt eine Funktion über die der MCP4921 nicht verfügt.
-
Thread
MCP4921 Vout
Hallo Leute, ich habe einen MCP4921 an meinen STM32F411 angeschlossen. Als referenzspannung habe ich die 3.3V vom NUCLEO Board benutzt. Ich wollte nun 8 Amplituden zwischen 3.3V und 0V generieren. Das macht der MCP4921 auch, nur macht
-
Thread
Verständnisfrage zum SPI-DAC / MCP 4812-E/P
bischer LDAC ummer auf GND geschaltet, da ich A und B unahängig nutze. Z.B.so: [c] #define MCP4921_KANA 0 #define MCP4921_KANB 0x8000 #define MCP4921_SHDN 0x1000 #define PORT_CS0 PORTC #define CS0 PC0 static unsigned int form_puffer_a = MCP4811_KANA | MCP4811_SHDN | 0x0400; static