Antworten

Der Beitrag verursachte die folgenden Fehler, die behoben werden müssen:
Achtung: In diesem Thema wurde seit 120 Tagen nichts mehr geschrieben.
Wenn Sie nicht absolut sicher sind, dass Sie hier antworten möchten, starten Sie ein neues Thema.
Einschränkungen: 8 pro Beitrag (8 verbleibend), maximale Gesamtgröße 8,79 MB, maximale Individualgröße 1 MB
Entfernen Sie den Haken der Dateianhänge, die gelöscht werden sollen
Klicken Sie hier oder ziehen Sie Dateien hierher, um sie anzuhängen.
Anhänge und andere Optionen
Tastenkürzel: Alt+S Beitrag schreiben oder Alt+P für Vorschau

Zusammenfassung

Autor Peter
 - 22.07.2022, 23:04:05 CEST
Hallo
Habe dir picass mal ein Video gemacht wie man mit dem Compiler sein
erstes Programm erstellen kann. Einfach mal ins Video Tutorial reinschauen.

Autor pic18
 - 11.07.2022, 04:53:38 CEST
Vielen Dank, ich bin unten auf Drucken gegangen. (bei Antworten)
Autor ADMIN
 - 10.07.2022, 21:27:32 CEST
Hallo
Du kannst oben rechts wo du auch drucken kannst, das Dokument speichern. Dann kannst
du es normal betrachten. Der verkleinerte Ausschnitt soll ja nur eine Art Vorschau sein,
was in dem Dokument steht. Es wird nun aber der Link des Dokumentes immer Angezeigt. Wenn du auf
diesen gehst, bekommst du nun immer eine ganze Ansicht im neuen Fenster. Ist glaub ich besser als
es immer zuerst zu speichern um es zu betrachten.

Euer ADMIN.
Autor pic18
 - 10.07.2022, 21:07:22 CEST
@Peter, wie kann man denn die Anleitung groß ansehen. Ich benutze den Firefox Browser unter Linux. Ich hatte es zwar unter Drucken den Link herausgefunden. Es muß aber auch anders gehen. Viele Grüße Pic18
Autor Peter
 - 09.07.2022, 16:43:31 CEST
Hier hast du eine komplette Anleitung für den Compiler.
Ob es das als Buch gibt weis ich auch nicht.

Manual MikroBasic

Peter
Autor Peter
 - 04.07.2022, 19:39:50 CEST
Variable gibt es nur wenn man sie braucht.
Unten mal ein kleines Programm um einen INA219 die Spannung und Strom
auf dem Display anzuzeigen. Da hast du alles was du suchst.

program ina219

DIM text1 , text2, text3 as Word
DIM aus1, aus2 as String [6]

dim LCD_RS as sbit at RB4_bit
    LCD_EN as sbit at RB5_bit
    LCD_D4 as sbit at RB0_bit
    LCD_D5 as sbit at RB1_bit
    LCD_D6 as sbit at RB2_bit
    LCD_D7 as sbit at RB3_bit

dim LCD_RS_Direction as sbit at TRISB4_bit
    LCD_EN_Direction as sbit at TRISB5_bit
    LCD_D4_Direction as sbit at TRISB0_bit
    LCD_D5_Direction as sbit at TRISB1_bit
    LCD_D6_Direction as sbit at TRISB2_bit
    LCD_D7_Direction as sbit at TRISB3_bit
    

main:
ANSELB = 0


I2C1_Init (100000)
delay_ms(100)
  
LCD_Init ()
LCD_CMD(_LCD_CLEAR)
LCD_CMD(_LCD_CURSOR_OFF)
'LCD_Out (1,1,"Peter")

I2C1_Start ()
I2C1_WR (0x80)
I2C1_WR (0)
I2C1_WR (0x19)
I2C1_WR (0x9F)
I2C1_Stop
delay_ms(20)
I2C1_Start
I2C1_WR (0x80)
I2C1_WR (0x05)
I2C1_WR (0x10)
I2C1_WR (0x7E)
I2C1_Stop
delay_ms(300)

While True
I2C1_Start
I2C1_WR (0x80)
I2C1_WR (0x02)           'Spannung
I2C1_Stop

delay_ms (10)
I2C1_Start
I2C1_WR (0x81)
text1 = I2C1_rd (0x01)
text2 = I2C1_rd (0x01)
I2C1_Stop

text3 =((text1 <<8)+text2)/2

wordtostr (text3,aus1)
LCD_Out(1,1,aus1)
'----------------------------
I2C1_Start
I2C1_WR (0x80)
I2C1_WR (0x01)          'Strom
I2C1_Stop

delay_ms (10)
I2C1_Start
I2C1_WR (0x81)
text1 = I2C1_rd (0x01)
text2 = I2C1_rd (0x01)
I2C1_Stop

text3 =((text1 <<8)+text2)

wordtostr (text3,aus1)
LCD_Out(2,1,aus1)

delay_ms(800)


Wend

end.
Autor PICkel
 - 04.07.2022, 15:18:53 CEST
@Peter:

OSCTUNE passt mit den default-Werten.
Die Frage ist, ob picass auch immer das im Projekt definierte File compiliert. Bin selber schon in diese Abseitsfalle gestolpert.  ;D
Autor Peter
 - 04.07.2022, 14:25:08 CEST
Das Problem ist aber das seine Grundeinstellungen nicht stimmen. Und solange da noch
Fehler drin sind kann nichts laufen. Bitte die Beispiele die ich als Bild
angehängt habe ausprobieren und berichten.
Muss bei diesem PIC nicht noch das OSCTUNE Register gesetzt werden ?
Kann mich da aber auch vertun. Wie gesagt habe den PIC nicht da.
Autor PICkel
 - 04.07.2022, 14:10:59 CEST
Zitat von: Peter in 03.07.2022, 19:37:51 CESTNochwas. Anscheinend willst du 31KHz als Takt haben.

Hallo picass,

der 18F14K22 hat nunmal 1MHz Takt beim INTOSC, zum Testen ist das eine passende Voreinstellung, die keine weiteren Anpassungen erfordert.

Wenn Du jetzt zu Beginn so erpicht darauf bist, den PIC mit 31kHz laufen zu lassen, dann habe ich mal hier ein passendes Programm:
program Blink_31

' Testprog. für 31 kHz
' PIC18F14K22 / PIC18F24K22
' an OSC2 kann die Oszillatorfrequenz/4 gemessen werden,
' bei 31kHz sind das 7,75kHz +-Toleranz

' Declarations section

'  Main program
main:

' Voreinstellungen:
OSCCON = 0x02    'Umschalten auf LFINTOSC mit 31 kHz
TRISA = 0
TRISB = 0
TRISC = 0

while TRUE
  PORTC =  0
  delay_ms(1000)
  PORTC = 255
  delay_ms(1000)
wend

end.

Der PIC läuft mit dem LFINTOSC, die Taktausgabe habe ich im Projekt auf OSC2 gesetzt (sollte RA.4 beim 18F14K22 sein?) Takteinstellung im Projekt ist 0.031MHz.
Das Messgerät zeigt einen an OSC2 gemessenen Takt mit den üblichen Toleranzen.

Übrigens, wegen Deiner Frage zu Variablen:
In diesem einfachen Beispiel musst Du keine definieren! Das macht der Compiler für Dich, indem er die internen Register R0...Rxx benutzt!

Bitte beachten: Im Projekt ist mein 18F24K22 definiert, Du muss natürlich den 18F14K22 auswählen!

Gruß
PICkel




Blink_31.jpgProjekt_31.jpg 
Autor pic18
 - 03.07.2022, 23:15:32 CEST
warum willst Du nur einen Takt von 31KHz?
hier im Datenblatt 2.6 Internal Oscillator S. 16 ist beschrieben wie Du den Takt einstellst.
Ich würde hier 2.6.2 HFINTOSC den Takt auf 16MHz einstellen. Wenn das zu wenig ist dann kannst Du über PLL den Takt vervierfachen. (40001365F.pdf)
https://ww1.microchip.com/downloads/en/DeviceDoc/40001365F.pdf

Similar topics (5)