-
Datei
mod_pwm.c
IDx) = 00 --> Input divider /1 TACTL.9-8 (TASSELx) = 10 --> SMCLK TACTL.15-10 = 000000 --> unused */ pwm_init(40000,50,6); //periode in ns ; tastgrad in % ; pin noch nicht implementiert!!!! for(;;) { P1OUT=~P1OUT; //zur Kontrolle, falls PWM nicht läuft kann hier an den Ports 1 und 2 P2OUT=~P2OUT; //ein
-
Datei
pwm_neu.asm
; einfache 8 Bit PWM Steuerung ; der Wert wird einfach in ocr1a1 geschrieben ; hier 128 d.h. Impuls 50 zu 50 ; Das PWM Signal liegt an Portb.3 an .include "2313def.inc" ;***** Global Register Variables ;***** Code rjmp
in „LED´s Dimmen“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
soft_pwm.c
LCD_BG_OFF PORTC |= (1<<PC1) //High #define LCD_BG_ON PORTC &= ~(1<<PC1) //Low volatile unsigned char pwm_count=0, pwm=0; /********************* Timer 0 Interrupt *********************/ ISR(TIMER0_OVF_vect) { // --- Backlight PWM --- unsigned char b_sreg; b_sreg=SREG; if (pwm_count>=pwm) LCD_BG_OFF; else LCD_BG_ON; if(pwm_count>254){pwm_count=0;} else{ pwm_count++;} SREG=b_sreg; } int main(void) { //Timer 0 TIMSK |= (1<<TOIE0); // interrupt T/C0 TCNT0 = 0; // start wert T/C0 TCCR0 |= ((0<<FOC0)|(0<<WGM01)|(0<<WGM00)|
in „Software PWM mit Atmega8 funktioniert nicht“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
soft_pwm.c
PORTC &= ~(1<<PC1) //Low PIN 1 Port C volatile unsigned char pwm_count=0, pwm=0; /********************* Timer 0 Interrupt *********************/ ISR(TIMER0_OVF_vect) { // --- Backlight PWM --- if (pwm_count>=pwm) LCD_BG_OFF; else LCD_BG_ON; if(pwm_count>254){pwm_count
in „Software PWM mit Atmega8 funktioniert nicht“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
pwm_dim.asm
.include "m8def.inc" .def temp1 = r16 .def temp2 = r17 .def temp3 = r18 .def temp4 = r19 .def adlow = r20 .def adhigh = r21 ; Stackpointer Init ldi temp1, LOW(RAMEND) out SPL, temp1 ldi temp1, HIGH(RAMEND) out SPH, temp1 ; ADC Init: Single, Pre 128 ldi temp1, (1<<REFS0) out ADMUX, temp1 ldi temp1, (1<<ADEN) | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0) out ADCSRA, temp1 ; Timer Einstellen ldi temp1, 1<<COM1A1 | 1<<COM1A0 | 1<<WGM11 | 1<<WGM10 | 1<<COM1B1 | 1<<COM1B0 out TCCR1A, temp1 ldi temp1, 1<<CS10 out TCCR1B, temp1 ; PORT B = AUSGANG ldi temp1, 0x06 out DDRB, temp1 ldi temp1, 0x03 out OCR1AH, temp1
-
Datei
pwm_test.bas
for PWM Pwm_red(01) = 10 pwm_red(02) = 20 pwm_red(03) = 40 pwm_red(04) = 80 pwm_red(05) = 100 pwm_red(06) = 150 pwm_red(07) = 200 pwm_red(08) = 255 Pwm_green(01) = 10 Pwm_green(02) = 20 Pwm_green(03) = 40 Pwm_green(04) = 80 Pwm_green(05) = 100 Pwm_green(06) = 150 Pwm_green(07) = 200 Pwm_green(08) = 255 Pwm_blue(01) = 10 Pwm_blue(02) = 20 Pwm_blue(03) = 40 Pwm_blue(04) = 80 Pwm_blue(05) = 100 Pwm_blue(06) = 150 Pwm_blue(07)
in „Ansteuern von 300 RGB-LEDs“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
LED_PWM.bas
$regfile = "m32def.dat" $crystal = 1000000 Config Portc.1 = Output Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 1 Do Compare1a = 205 Loop End
in „Ist das so korrekt?“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
DMX_PWM.c
// Timer 1 Output COMPARE A Interrupt ISR(TIMER1_COMPA_vect) { static uint8_t pwm_cnt=0; uint8_t tmp=0; OCR1A += (uint16_t)T_PWM; if (pwm_setting[0] > pwm_cnt) tmp |= (1<<0); if (pwm_setting[1] > pwm_cnt) tmp |= (1<<1); if (pwm_setting[2] > pwm_cnt) tmp |= (1<<2); if (pwm_setting[3] > pwm_cnt) tmp |= (1<<3); PWM_PORT = tmp; // PWMs aktualisieren if (pwm_cnt==(uint8_t)(PWM_STEPS-1)) pwm_cnt=0; else pwm_cnt++; } //************************************************************************
in „Werte aus Interrupt korrekt verarbeiten“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
scale_pwm.bas
r1 push r16 push r17 push r18 push r19 push r30 push r31 in r19,SREG 'Statusregister sichern 'Sinus-PWM Werte neu setzen ldi r30,low(sinus*2) 'Sinustabellen Speicheradresse in r30/31 laden ldi r31,high(sinus*2) 'Sinustabellen Speicheradresse in r30/31 laden lds r16 , {zaehler} 'Zähler in r16 laden add
in „skalierung des PWM für dcdc Regelung“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
PWM_Test.txt
0xFF; DDRD &= ~( (1<<PD5) | (1<<PD6) | (1<<PD7) ); PORTD = 0x00; //Interrupts erlauben sei(); //Fast-PWM, Timer0 benutzen TCCR0A = (1<<WGM00) | (1<<WGM01); //Takt = FCPU/64 TCCR0B = (1<<CS01) | (1<<CS00); //PD3 (OC2B) als PWM-Port setzen TCCR2A |= (1<<COM2B1); //PWM auf 50% OCR2B = 128; } //***********
in „Problem mit PWM an PD3 ATmega48“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
pwm_sc.vhd
: in std_logic_vector (11 downto 0); SINNUS3 : in std_logic_vector (11 downto 0); PWM_OUT1 : out std_logic; PWM_OUT2 : out std_logic; PWM_OUT3 : out std_logic; PWM_OUT4 : out std_logic; PWM_OUT5 : out std_logic; PWM_OUT6 : out std_logic; PWM_OUT1_INV : out std_logic; PWM_OUT2_INV : out
-
Datei
pwm_sc.vhd
: in std_logic_vector (11 downto 0); SINNUS3 : in std_logic_vector (11 downto 0); PWM_OUT1 : out std_logic; PWM_OUT2 : out std_logic; PWM_OUT3 : out std_logic; PWM_OUT4 : out std_logic; PWM_OUT5 : out std_logic; PWM_OUT6 : out std_logic; PWM_OUT1_INV : out std_logic; PWM_OUT2_INV : out
-
Datei
PWM_Test.asm
.include "m644Pdef.inc" jmp RESET ; Reset jmp EXT_INT0 ; IRQ0 Request jmp EXT_INT1 ; IRQ1 Request jmp EXT_INT2 ; IRQ2 Request jmp PC_INT0 ; Pin Change Interrupt Request 0 jmp PC_INT1 ; Pin Change Interrupt Request 1 jmp PC_INT2 ; Pin Change Interrupt Request 2 jmp PC_INT3 ; Pin Change Interrupt Request 3 jmp WDT ; Watchdog Time-out Interrupt jmp TIMER2_COMPA ; Timer2 CompareA jmp TIMER2_COMPB ; Timer2 CompareB jmp TIMER2_OVF ; Timer2 Overflow jmp TIMER1_CAPT ; Timer1 Capture jmp TIMER1_COMPA ; Timer1 CompareA jmp TIMER1_COMPB ; Timer1 CompareB jmp TIMER1_OVF ; Timer1 Overflow jmp TIMER0_COMPA ; Timer0
in „36khz für ir- kollisionssystem“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
led_pwm.vhd
- Company: -- Engineer: -- -- Create Date: 17:58:00 01/15/2010 -- Design Name: -- Module Name: led_pwm - Behavioral -- Project Name: -- Target Devices: -- Tool versions: -- Description: -- -- Dependencies: -- -- Revision: -- Revision 0.01 - File Created -- Additional Comments: -- --------------------
in „Ausgaenge schalten nicht im Simulator“ · FPGA, VHDL & Co. ·
-
Datei
tb_pwm.vhd
- -- Create Date: 18:58:05 01/15/2010 -- Design Name: -- Module Name: /home/marvin/work/xilinx/led_pwm/tb_pwm.vhd -- Project Name: led_pwm -- Target Device: -- Tool versions: -- Description: -- -- VHDL Test Bench Created by ISE for module: led_pwm -- -- Dependencies: -- -- Revision: -- Revision 0.01
in „Ausgaenge schalten nicht im Simulator“ · FPGA, VHDL & Co. ·
-
Datei
pwm_sub.vhd
instantiating ---- any Xilinx primitives in this code. --library UNISIM; --use UNISIM.VComponents.all; entity pwm_sub is Port ( clock_in : in STD_LOGIC; value_in : in STD_LOGIC_VECTOR (15 downto 0); counter_in : in STD_LOGIC_VECTOR (15 downto 0); en : in STD_LOGIC; oc : out STD_LOGIC); end pwm_sub; architecture Behavioral of pwm_sub is signal value: std_logic_vector (15 downto 0) :="0000000000000100"; signal oc_sig : std_logic :='0'; begin process (clock_in) begin if rising_edge (clock_in) then if (value=0) then oc_sig <='1
in „Bit mit dauer Value '0' soll nicht weg optimiert werden (ISE)“ · FPGA, VHDL & Co. ·
-
Datei
PWM-Programm.asm
auf RCECHR bzw. nächster ;empfangener Wert einlesen UP: SUBI temp, 128 ;128 abziehen vom Wert damit PWM bei 0 anfängt LDI temp2, 8 ;empfangener Wert mit 8 multiplizieren MUL temp, temp2 ;um auf 1000 Zählschritte zu kommen OUT OCR1AL , temp OUT OCR1AH , temp ;Produkt auf Compare-Match-Register ausgeben
in „Abschlussprojekt“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
PWM21.cpp
const int PIN_JOG_GREY_0 = 3;//bit0 of grey const int PIN_JOG_GREY_1 = 11;//bit1 of grey const int PIN_PWM2_OUTPUT = 9;//Chip const int PIN_PWM_OUTPUT = 10;//The high precision PWM pin //////////////////////////////////////////////////////////////////////////////////////////////////////////// // Macros #
in „PWM mit Display und Taser“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
8PWM.ASM
;Beispiel für 8-Kanal-PWM mit AT-Mega8535 .include "m8535def.inc" .equ pwu=64 ;PWM-Zählumfang .equ timerwert=-100;100 Timerschritte bis zum Überlauf .equ aus=portc ;Ausgabeport für PWM .def soll0=r0 ;Sollwert PWM-Kanal 0 .def soll1=r1 ;Sollwert PWM-Kanal 1 .def soll2=r2 ;Sollwert PWM-Kanal 2 .def soll3=r3 ;Sollwert PWM-Kanal 3 .def soll4=r4 ;Sollwert PWM-Kanal 4 .def soll5=r5 ;Sollwert PWM-Kanal 5 .def soll6=r6 ;Sollwert PWM-Kanal 6 .def soll7
in „PWM Tutorial“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
DMX_PWM.c
// Timer 1 Output COMPARE A Interrupt ISR(TIMER1_COMPA_vect) { static uint8_t pwm_cnt=0; uint8_t tmp=0; OCR1A += (uint16_t)T_PWM; if (pwm_setting[0] > pwm_cnt) tmp |= (1<<0); if (pwm_setting[1] > pwm_cnt) tmp |= (1<<1); if (pwm_setting[2] > pwm_cnt) tmp |= (1<<2); if (pwm_setting[3] > pwm_cnt) tmp |= (1<<3); PWM_PORT = tmp; // PWMs aktualisieren if (pwm_cnt==(uint8_t)(PWM_STEPS-1)) pwm_cnt=0; else pwm_cnt++; } //************************************************************************
in „Problem bei PWM-Steuerung via DMX512“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
PWM2.asm
timer0_overflow: ; Timer 0 Overflow Handler inc TimeCount_1 ; Zähler 1 inkementieren inc PWMCount ; den PWM Zähler von 0 bis cpi PWMCount, 128 ; 127 zählen lassen brne WorkPWM clr PWMCount WorkPWM: ldi temp, 0b11000000 ; 0 .. Led an, 1 .. Led aus cp PWMCount, ocr_1 ; Ist der Grenzwert für Led 1 erreicht brlo
in „AVR/ASM Tip zu abgeänd. PWM-Helligkeit Tut. (Helligkeit über Taster)“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
tb_PWM.vhd
--------------------------------------------- library IEEE; use IEEE.std_logic_1164.all; entity tb_PWM is end tb_PWM; architecture sim of tb_PWM is -- Declaration of the component under test component PWM port ( data_i: in std_logic_vector (7 downto 0); v_o: out std_logic; pause_i: in std_logic; play_i
in „HILFE, ich finde nicht raus wo der Fehler liegt!“ · FPGA, VHDL & Co. ·
-
Datei
pwm_dim.asm
.include "m8def.inc" .def temp1 = r16 .def temp2 = r17 .def temp3 = r18 .def temp4 = r19 .def adlow = r20 .def adhigh = r21 ; Stackpointer Init ldi temp1, LOW(RAMEND) out SPL, temp1 ldi temp1, HIGH(RAMEND) out SPH, temp1 ; ADC Init: Single, Pre 128 ldi temp1, (1<<REFS0) out ADMUX, temp1 ldi temp1, (1<<ADEN) | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0) out ADCSRA, temp1 ; Timer Einstellen ldi temp1, 1<<COM1A1 | 1<<COM1A0 | 1<<WGM11 | 1<<WGM10 | 1<<COM1B1 | 1<<COM1B0 out TCCR1A, temp1 ldi temp1, 1<<CS10 out TCCR1B, temp1 ; PORT B = AUSGANG ldi temp1, 0x06 out DDRB, temp1 ldi temp1, 0x03 out OCR1AH, temp1
in „PWM Singal für LM3404“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
pwmMessung.c
#include <avr/io.h> #include <avr/interrupt.h> #include <stdlib.h> #define BAUD 9600UL #define UBRR_VAL F_CPU/16/BAUD-1 void uartInit(void) { UCSR0B |= (1<<TXEN0); UCSR0C |= (1<<UCSZ01)|(1<<UCSZ00); UBRR0 = UBRR_VAL; } int uart_putc(unsigned char c) { while (!(UCSR0A & (1<<UDRE0))) { } UDR0 = c; return 0; } void uart_puts (char *s) { while (*s) { uart_putc(*s); s++; } } void RCinit(void) { TCCR0B |= (1<<CS00) | (1<<CS01); //Prescaler PCMSK0 |= (1<<PCINT0) | (1<<PCINT1) | (1<<PCINT2) | (1<<PCINT3); //PC Maske PCICR |= (1<<PCIE0);//Interrupt anschalten EICRA |= ((1<<ISC01) | (1<<ISC00)); //Interrupt
in „Servo Signal messen funktioniert nciht“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
pwm4.bas
' Hardware Pwm Abstimmung für das Pollin Tunermodul $regfile = "m16def.dat" $crystal = 1000000 Dim A As Integer 'Variable für Abstimmschritte bei Stoppsignal Dim B As Bit Dim E(10) As Eram Integer Dim Zaler As Byte
in „PLL per Software“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
pwm4.bas
' Hardware Pwm Abstimmung für das Pollin Tunermodul $regfile = "m16def.dat" $crystal = 1000000 Dim A As Integer 'Frequenzvariable Dim B As Bit 'keine Idee Dim E(10) As Eram Integer 'Speicher liste Dim Zaler As Byte
in „PLL per Software“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
testPWM.asm
.include"m8def.inc" // r16 und r17 sind die register für die PWM der motoren //r18 aufwärts können so verwendet werden // MEGA MIT 8 MHZ initiallisierung: timer_und_stack: ldi r18, HIGH(RAMEND) ; Stackpointer initialisieren out SPH, r18 ldi r18, LOW(RAMEND) out SPL
in „Problem mit PWM bei Mega8“ · Mikrocontroller und Digitale Elektronik ·
-
PDF
PWM-Tabelle.pdf
PWM-Tabelle.pdf
in „PWM Verständnisfrage“ · Mikrocontroller und Digitale Elektronik ·
-
PDF
-
Datei
pwm2.vhd
-1 downto 0) :="0000000000000000"; constant pwm_aufloesung : integer :=11; constant pwm_max : std_logic_vector(pwm_aufloesung-1 downto 0) :="11111111111"; constant pwm_min : std_logic_vector(pwm_aufloesung-1 downto 0) :="00000000000"; signal schieberegister_int
in „hardware-pwm mit variabler auflösung in xilinx cpld“ · Projekte & Code ·
-
Datei
PWM023.bas
' ------ Soft PWM für Mikroschrittmotor ------------- $crystal = 8000000 '3686000 $regfile "m32def.dat" '"m16def.dat","8515def.dat" $programmer = 7 $hwstack = 8 $swstack = 6 $framesize = 10 Dim M1_w1afreq As Integer
in „Mikroschrittmotor mit L293 oder PBM3960 + PBL3771: Wie programmieren?“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
PWM_ATiny.asm
;Programm wandelt eine analoge Spannung von PORTB.2 in ein entsprechendes PWM-Signal ;am PORTB.1 um. Das Programm ist für einen ATtiny13 geschrieben ;Ein Konfigurationstaster (um 100% PWM zu definieren) ist an PORTB.4 vorgesehen ;OCR0A (Top-wert des Zählers) wird im EEPROM gespeichert
in „Analog zu PWM. Fehler im Programm?“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
PWM-Test.c
PWM_PRESCALER 8 // Vorteiler für den Timer #define PWM_STEPS 256 // PWM-Schritte pro Zyklus(1..256) #define PWM_PORT PORTD // Port für PWM #define PWM_DDR DDRD // Datenrichtungsregister für PWM #define PWM_CHANNELS 8 // Anzahl der PWM-Kanäle // ab hier nichts ändern, wird alles berechnet #define T_PWM (F_CPU/(PWM_PRESCALER*F_PWM*PWM_STEPS)) // Systemtakte pro PWM-Takt //#define T_PWM 1 //TEST #if ((T_PWM
in „Problem mit der Soft-PWM“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
PWM-Test.c
//Port B (und somit auch den OCR1A-Pin) als Ausgang definieren DDRB = 0xFF; //Anfangswert für die PWM OCR1A = sineTable[0]; //Fast PWM, TOP = ICR1, Update of OCR1A at BOTTOM, TOV1 Flag set on TOP //Clear OC1A/OC1B on Compare Match, set OC1A/OC1B at BOTTOM, (non-inverting mode) TCCR1A = (1<<COM1A1) |
in „PWM mit ATmega8: Takt langsamer als eingestellt“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
PWM-Test.c
//Port B (und somit auch den OCR1A-Pin) als Ausgang definieren DDRB = 0xFF; //Anfangswert für die PWM OCR1A = sineTable[0]; //Erster Teil der PWM-Konfiguration: // Fast PWM, TOP = ICR1, Update of OCR1A at BOTTOM, TOV1 Flag set on TOP // Clear OC1A/OC1B on Compare Match, set OC1A/OC1B at BOTTOM, (non-inverting mode) // //ACHTUNG: Ein Teil der PWM-Bits befindet sich im TCCR1B-Register! TCCR1A = (1<<COM1A1) | (1<<WGM11); //Wert, bei dem der Timer zurückspringt ICR1 = 127; //Zweiter Teil der PWM-Einstellung //kein Prescaler TCCR1B = (1<<CS10) |
in „PWM mit ATmega8: Takt langsamer als eingestellt“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
ADC-PWM.c
uint16_t)result; } /****************************************************************/ //Initialisierung PWM void PWM_Init(void) { DDRE |= (1<<PE3) | (1<<PE4); // PinE3 und E4 auf Ausgang TCCR3A |= (1<<COM3A1) | (1<<COM3B1); //OC3A PINE3/OC3B PinE4 auf nicht inv.PWM TCCR3A = ((1<<WGM31) | (1<<WGM30)); // 10 Bit PWM // Takt CK/1024 Fast-PWM TCCR3B |= ((1<<CS30) | (1<<CS32) | (1<<WGM33) | (1<<WGM32)); //Obere Grenze ICR3 = 0x6FFF; } /****************************************************************/ // PWM-Übergabe
in „Erzeugen/Einbinden einer Library (Threads-)“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
PWM_Code.c
1000000UL #endif #include <avr/io.h> // Namen der IO Register #include <util/delay.h> //Initialisierung PWM void PWM_init (void) { /* Timer 1 Konfigurieren NON Inverting Ausgang OC1B (bei Compare Match Ausgang auf LOW) FAST PWM mit TOP durch ICR1 und Compare durch OC1B f_pwm soll 500 Hz sein: 500 = F_CPU/
in „PWM Invertieren“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
PWM_Code.c
1000000UL #endif #include <avr/io.h> // Namen der IO Register #include <util/delay.h> //Initialisierung PWM void PWM_init (void) { /* Timer 1 Konfigurieren NON Inverting Ausgang OC1A (bei Compare Match Ausgang auf LOW) FAST PWM mit TOP durch ICR1 und Compare durch OC1A f_pwm soll 500 Hz sein: 500 = F_CPU/
in „PWM Invertieren“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
PWM_Code.c
io.h> // Namen der IO Register #include <util/delay.h> #include <avr/interrupt.h> //Initialisierung PWM void PWM_init (void) { /* Timer 1 Konfigurieren f_pwm soll 500 Hz sein: 500 = F_CPU/(Prescaler * (1+TOP)) Prescaler 8 & TOP 249 ergeben eine PWM Frequenz von 500 Hz bei internem 1 Mhz Quarz */ //unsigned
in „PWM Invertieren“ · Mikrocontroller und Digitale Elektronik ·
-
Bild
Oszilloskop-Messung digitaler Signale
8 s : 490 ms +1 ms +2 ms +3 ms +4 ms +5 ms +6 ms +7 ms +8 ms D0 1A oder 5A H L D1 1B oder 5B H L D2 3A H L D3 3B H L D4 3C H L D5 4A H L D6 4B H L D7 4C H L
in „Arduino Mega R3 PWM funktioniert nicht für Timer 5 (A), Pin 44“ · Mikrocontroller und Digitale Elektronik · · Oszi-Bilder
-
Datei
MasterPWM.asm
.include "m32def.inc" .DEF TEMP = R17 .DEF COUNTER = R20 .ORG 0x000 RJMP INITIALIZE //Reset Handler .ORG OVF0addr RJMP TIMER //Timer0 Handler ////////////////////////////////////////////////////////////////////////////////////////////////////////// INITIALIZE: LDI R17, HIGH(RAMEND) OUT SPH, R17 LDI R17, LOW(RAMEND) OUT SPL, R17 RCALL SPI_MasterInit //Timer0 Prescaler LDI TEMP, 0b00000101 OUT TCCR0, TEMP //Timer0 Interrupt-Aktivierung LDI TEMP, 0b00000001 OUT TIMSK, TEMP //Allgemeine Interrupt-Aktivierung SEI //////////////////////////////////////////////////////////////////////////////////////
in „State machine in Assembler“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
PWM1.txt
************************************************ ; die eizige bedeutung der gleichsetzung hier ist PWM. ; di eses Register wird verwendet, um die länge des PWM signals zu generieren. ;**************************************************************************** org 0x00 goto start org 0x04 ;**********
in „PIC 16f84 PWM mit 1-Tastensteuerung“ · Mikrocontroller und Digitale Elektronik ·
-
PDF
-
PDF
-
Datei
pwm_tasten.txt
.include "m8def.inc" .def temp1 = r17 .def temp2 = r16 .def pwm_vari = r18 ;variable für PWM vorladen (pwm_vari initialisieren) ldi pwm_vari,0x6d ; Setze erstmal "pwm" auf 6d => led leuchtet schwach ;init_STACK ldi temp1, HIGH(RAMEND) ; Stackpointer initialisieren
in „LED dimmen durch mehrmaliges Tastendrücken“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Fast_PWM.asm
;----------------------------------------------- ;Titel: Fast_PWM ;----------------------------------------------- ;Aufgabe: Am Pin PB3 (OC0) wird ein Rechtecksignal erzeugt. ; Deren Tastgrad lässt sich mit dem vom PC gesendeten ; Wert verändern. ;----------------
in „Wie groß ist clk_I/O-Frequenz“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Code_PWM.txt
#include <AT89x051.H> void main (void) { //Initialisierung //PWM aktivieren PCON = 0x20; //Werte für PWM berechnen: //f=12,5 MHz / 12 = 1 MHz --> 1 Zyklus 78µs //78 Zyklen * 256 ~ 20 ms //Pulsdauer zwischen 1 und 2 ms //1000 / 78 = ~13 //2000 / 78 = ~26 //Startwert
in „AT89S4051 PWM“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
PREAMP_PWM.c
#include <avr/io.h> #include <stdint.h> ////////////////////////////// #define Takt 8000000ul ////////////////////////////// volatile uint16_t i; volatile uint16_t GainA; volatile uint16_t GainB; volatile uint16_t TrebleA; volatile uint16_t TrebleB; volatile uint16_t MidsA; volatile uint16_t MidsB; volatile uint16_t BassA; volatile uint16_t BassB; volatile uint16_t PresenceA; volatile uint16_t PresenceB; volatile uint16_t LevelA; volatile uint16_t LevelB; ////////////////////////////// #define PORTA1 PORTB #define PORTA2 PORTC #define Gain1 PB0 #define Gain2 PB1 #define Treble1 PB2 #define Treble2
in „Software PWM für 12 Kanäle à 0-5V“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
PWM_Interrupt.c
int Count; //Zähler für durchläufe void timer0() { OPTION_Reg=0b11000111; /* 1-------; Betrifft nicht Timer0 -1------; Betrifft nicht Timer0 --0-----; Internet Takt für Timer0 verwenden ---0----; Bei ext. Takt b. stg Flanke inkr. (nicht relevant) ----0---; Prescaler für Timer 0 verwenden -----111; Prescaler (1:256) */ T0IF_bit=0; //Timer0 Interrupt Flag löschen GIE_bit=1; //Alle unmaskierten interrupts erlauben T0IE_bit=1; //Timer0 Interrupt erlauben TMR0=180; // Timer0 Value } static void interrupt (void) //ISR { GP2_bit=1; //Ausgang auf 1 TMR1L=253; //High Byte berechnen TMR1L=232; //Low Byte berechnen
in „PIC12F675 brauche Hilfe“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
soft-pwm.c
pwm_cnt) tmp[0] |= (1<<0); if (pwm_setting[1] > pwm_cnt) tmp[0] |= (1<<1); if (pwm_setting[2] > pwm_cnt) tmp[0] |= (1<<2); if (pwm_setting[3] > pwm_cnt) tmp[0] |= (1<<3); if (pwm_setting[4] > pwm_cnt) tmp[0] |= (1<<4); if (pwm_setting[5] > pwm_cnt) tmp[0] |= (1<<5); if (pwm_setting[6] > pwm_cnt) tmp[0] |= (1<<6); if (pwm_setting[7] > pwm_cnt) tmp[0] |= (1<<7); if (pwm_setting[8] > pwm_cnt) tmp[1] |= (1<<0); if (pwm_setting
in „Treppenstufenbeluchtung - Code Umbauen - Hilfe“ · Mikrocontroller und Digitale Elektronik ·