Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Разное » GreatCowBasic


GreatCowBasic

Сообщений 1 страница 5 из 5

1

Нашел на Коте упоминание о коровьем бейсике. https://radiokot.ru/forum/viewtopic.php … p;t=158715
Компилирует под PIC и AVR.
Тестовый код.

Код:
#chip mega328p, 16

Dir PORTB.0 Out

Do
  wait 500 ms
  PORTB.0 = 1
  wait 500 ms
  PORTB.0 = 0
loop

Скомпилировался в прошивку размером 124 байта.

Ассемблерный листинг того что получилось.
Код:
;Program compiled by Great Cow BASIC (0.98.02 2018-05-10)
;Need help? See the GCBASIC forums at http://sourceforge.net/projects/gcbasic/forums,
;check the documentation or email w_cholmondeley at users dot sourceforge dot net.

;********************************************************************************

;Chip Model: MEGA328P
;Assembler header file
.INCLUDE "m328pdef.inc"

;SREG bit names (for AVR Assembler compatibility, GCBASIC uses different names)
#define C 0
#define H 5
#define I 7
#define N 2
#define S 4
#define T 6
#define V 3
#define Z 1

;********************************************************************************

;Register variables
.DEF	DELAYTEMP=r25
.DEF	DELAYTEMP2=r26
.DEF	SYSVALUECOPY=r21
.DEF	SYSWAITTEMPMS=r29
.DEF	SYSWAITTEMPMS_H=r30

;********************************************************************************

;Vectors
;Interrupt vectors
.ORG	0
	rjmp	BASPROGRAMSTART ;Reset
.ORG	2
	reti	;INT0
.ORG	4
	reti	;INT1
.ORG	6
	reti	;PCINT0
.ORG	8
	reti	;PCINT1
.ORG	10
	reti	;PCINT2
.ORG	12
	reti	;WDT
.ORG	14
	reti	;TIMER2_COMPA
.ORG	16
	reti	;TIMER2_COMPB
.ORG	18
	reti	;TIMER2_OVF
.ORG	20
	reti	;TIMER1_CAPT
.ORG	22
	reti	;TIMER1_COMPA
.ORG	24
	reti	;TIMER1_COMPB
.ORG	26
	reti	;TIMER1_OVF
.ORG	28
	reti	;TIMER0_COMPA
.ORG	30
	reti	;TIMER0_COMPB
.ORG	32
	reti	;TIMER0_OVF
.ORG	34
	reti	;SPI_STC
.ORG	36
	reti	;USART_RX
.ORG	38
	reti	;USART_UDRE
.ORG	40
	reti	;USART_TX
.ORG	42
	reti	;ADC
.ORG	44
	reti	;EE_READY
.ORG	46
	reti	;ANALOG_COMP
.ORG	48
	reti	;TWI
.ORG	50
	reti	;SPM_READY

;********************************************************************************

;Start of program memory page 0
.ORG	52
BASPROGRAMSTART:
;Initialise stack
	ldi	SysValueCopy,high(RAMEND)
	out	SPH, SysValueCopy
	ldi	SysValueCopy,low(RAMEND)
	out	SPL, SysValueCopy
;Call initialisation routines
	rcall	INITSYS

;Start of the main program
;Dir PORTB.0 Out
	sbi	DDRB,0
;Do
SysDoLoop_S1:
;wait 500 ms
	ldi	SysWaitTempMS,244
	ldi	SysWaitTempMS_H,1
	rcall	Delay_MS
;PORTB.0 = 1
	sbi	PORTB,0
;wait 500 ms
	ldi	SysWaitTempMS,244
	ldi	SysWaitTempMS_H,1
	rcall	Delay_MS
;PORTB.0 = 0
	cbi	PORTB,0
;loop
	rjmp	SysDoLoop_S1
SysDoLoop_E1:
BASPROGRAMEND:
	sleep
	rjmp	BASPROGRAMEND

;********************************************************************************

Delay_MS:
	inc	SysWaitTempMS_H
DMS_START:
	ldi	DELAYTEMP2,254
DMS_OUTER:
	ldi	DELAYTEMP,20
DMS_INNER:
	dec	DELAYTEMP
	brne	DMS_INNER
	dec	DELAYTEMP2
	brne	DMS_OUTER
	dec	SysWaitTempMS
	brne	DMS_START
	dec	SysWaitTempMS_H
	brne	DMS_START
	ret

;********************************************************************************

INITSYS:
;Turn off all ports
;PORTB = 0
	ldi	SysValueCopy,0
	out	PORTB,SysValueCopy
;PORTC = 0
	ldi	SysValueCopy,0
	out	PORTC,SysValueCopy
;PORTD = 0
	ldi	SysValueCopy,0
	out	PORTD,SysValueCopy
	ret

;********************************************************************************

Этот код и документация на GreatCowBasic. http://pure-basic.narod.ru/forum_files/ … wBasic.zip

0

2

Пётр написал(а):

Скомпилировался в прошивку размером 124 байта.

Ну дофига - чо. :)
А так, если он поддерживает современные ПИКины, то весьма альтернатива для их "изучения".
Надеюсь проект будет развиваться.

0

3

bulat943 написал(а):

есть готовые либы для
...
NEXTION
...

А тут то какая "либа" нужна ?  o.O
Отправить по UART немного специфическую цепочку и принять вполне внятную ? ;)

0

4

Nord написал(а):

А тут то какая "либа" нужна ?  
Отправить по UART немного специфическую цепочку и принять вполне внятную ?

Удалил пост,не усмотрел что там есть дисплей для которого не надо по мнению Nord никаких библиотек и шрифтов...
Осилил ILI9341

Отредактировано bulat943 (2018-12-02 17:35:25)

0

5

bulat943 написал(а):

Удалил пост,не усмотрел что там есть дисплей для которого не надо по мнению Nord никаких библиотек и шрифтов...

Зачем так категорично-то ? ;)
Про остальные контроллеры - инфа полезная.

Просто Nextion - "другой", это не просто "экран с контроллером"... ;)

PS  Скачал "коровий", установил, но пока только один раз запустил... ;)
За ссылку со справкой - спасибо.

+1


Вы здесь » Программирование ATMEL в BASCOM. » Разное » GreatCowBasic